<no-defun-allowed>
That raises interesting questions about what constitutes "source code" for that course. That was generated code (and it had a "written by PROGRAM-NAME.lisp, do not edit" header) but I didn't get into trouble for submitting that.
<no-defun-allowed>
And I ended up changing it to 2x4 or something because most terminal fonts are taller than they are wide. A fun hack nonetheless.
Qudit314159 has joined #lisp
emys has quit [Ping timeout: 246 seconds]
igemnace has quit [Quit: WeeChat 2.9]
dilated_dinosaur has quit [Ping timeout: 240 seconds]
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
dbotton has joined #lisp
bilegeek has joined #lisp
shifty has quit [Ping timeout: 258 seconds]
torbo has joined #lisp
mason has quit [Ping timeout: 272 seconds]
dmc00 has joined #lisp
perrier-jouet has quit [Quit: WeeChat 2.9]
abhixec has quit [Ping timeout: 240 seconds]
bilegeek has quit [Quit: Leaving]
aaaaaa has quit [Quit: leaving]
galex-713 has quit [Ping timeout: 272 seconds]
rtypo has quit [Ping timeout: 272 seconds]
galex-713 has joined #lisp
sts-q has quit [Remote host closed the connection]
borei has joined #lisp
Qudit314159 has quit [Remote host closed the connection]
akoana has joined #lisp
semz has quit [Ping timeout: 260 seconds]
mason has joined #lisp
mason has quit [Client Quit]
orivej has joined #lisp
shifty has joined #lisp
galex-713 has quit [Ping timeout: 264 seconds]
galex-713 has joined #lisp
semz has joined #lisp
semz has quit [Changing host]
semz has joined #lisp
Stanley00 has joined #lisp
oxum has joined #lisp
mason has joined #lisp
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
orivej has quit [Ping timeout: 246 seconds]
abhixec has joined #lisp
orivej has joined #lisp
gaqwas has quit [Ping timeout: 256 seconds]
gaqwas has joined #lisp
gaqwas has quit [Changing host]
gaqwas has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
<beach>
Good morning everyone!
iissaacc has quit [Ping timeout: 260 seconds]
borei has quit [Quit: Leaving.]
oxum has quit [Ping timeout: 246 seconds]
ldbeth has joined #lisp
<ldbeth>
good morning everyone
Jesin has quit [Ping timeout: 264 seconds]
<no-defun-allowed>
Hello ldbeth.
vegansbane has joined #lisp
ldbeth has quit [Remote host closed the connection]
ldbeth has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
Alloc has quit [Ping timeout: 256 seconds]
Alloc has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
torbo has quit [Remote host closed the connection]
<markasoftware>
Has anyone here used cl-typesetting? How is it compared to TeX?
ldbeth` has joined #lisp
<no-defun-allowed>
It's quite a bit less powerful than TeX. There's only a few inbuilt fonts and none support non-ASCII characters from what I remember.
ldbeth has quit [Ping timeout: 260 seconds]
<no-defun-allowed>
It's much more convenient than writing TeX I suppose, but it's quite limiting in what you can do.
<iissaacc>
its sure to be less painful than TeX god i hate TeX
oxum has joined #lisp
<markasoftware>
Does it support mat hstuff fairly well? Like integrals or cube roots for example
<no-defun-allowed>
But it can't do close to as much as TeX; I used cl-typesetting because I didn't want to lug around a TeX system for an accounting program.
narodism has quit [Ping timeout: 256 seconds]
<no-defun-allowed>
I don't think there was much math support. (And I really didn't like the fonts.)
Stanley00 has quit [Ping timeout: 246 seconds]
Alloc has quit [Ping timeout: 240 seconds]
<markasoftware>
huh. Thanks for the info
Stanley00 has joined #lisp
ex_nihilo has quit [Quit: Leaving]
jesse1010 has quit [Ping timeout: 256 seconds]
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
Stanley00 has quit [Ping timeout: 258 seconds]
lucasb has quit [Quit: Connection closed for inactivity]
dbotton has quit [Quit: -a- Connection Timed Out]
dbotton has joined #lisp
oxum has quit [Remote host closed the connection]
jw4 has quit [Quit: tot siens]
narimiran has joined #lisp
jw4 has joined #lisp
ldbeth`` has joined #lisp
abhixec has quit [Quit: leaving]
ldbeth` has quit [Ping timeout: 260 seconds]
oxum has joined #lisp
kir0ul_ has joined #lisp
ldbeth`` has quit [Ping timeout: 246 seconds]
shifty has quit [Ping timeout: 246 seconds]
gravicappa has joined #lisp
Alloc has joined #lisp
sts-q has joined #lisp
sts-q has quit [Client Quit]
sts-q has joined #lisp
Aurora_v_kosmose has quit [Quit: testing...]
Alloc has quit [Ping timeout: 260 seconds]
kiroul has joined #lisp
Alloc has joined #lisp
Jesin has joined #lisp
kir0ul_ has quit [Ping timeout: 260 seconds]
frost-lab has joined #lisp
Stanley00 has joined #lisp
shangul has joined #lisp
kiroul has quit [Ping timeout: 272 seconds]
saganman has joined #lisp
saganman has quit [Changing host]
saganman has joined #lisp
Guest8111 has joined #lisp
tamarindo has quit [Ping timeout: 240 seconds]
voidhawk has joined #lisp
Qudit314159 has quit [Remote host closed the connection]
oxum has quit [Remote host closed the connection]
oxum has joined #lisp
oxum has quit [Remote host closed the connection]
oxum has joined #lisp
shka_ has joined #lisp
skapata has quit [Remote host closed the connection]
mangul has joined #lisp
habeangur has joined #lisp
shangul has quit [Ping timeout: 265 seconds]
mangul has quit [Ping timeout: 258 seconds]
toorevitimirp has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
Nikotiini has quit [Ping timeout: 246 seconds]
Guest8111 has quit [Quit: Leaving]
Guest8111 has joined #lisp
froggey has quit [Ping timeout: 256 seconds]
Guest8111 is now known as tamarindo
hnOsmium0001 has joined #lisp
froggey has joined #lisp
Nilby has joined #lisp
Nikotiini has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
shifty has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
kiroul has joined #lisp
toorevitimirp has quit [Remote host closed the connection]
toorevitimirp has joined #lisp
habeangur is now known as shangul
tamarindo has quit [Remote host closed the connection]
hendursaga has quit [Remote host closed the connection]
tamarindo has joined #lisp
hendursaga has joined #lisp
perrier-jouet has joined #lisp
Aurora_v_kosmose has joined #lisp
shifty has quit [Ping timeout: 260 seconds]
shifty has joined #lisp
jonatack has quit [Ping timeout: 260 seconds]
pve has joined #lisp
perrier-jouet has quit [Quit: WeeChat 2.9]
shifty has quit [Ping timeout: 258 seconds]
shifty has joined #lisp
narodism has joined #lisp
hendursa1 has joined #lisp
rgherdt has joined #lisp
hendursaga has quit [Ping timeout: 240 seconds]
jonatack has joined #lisp
kiroul has quit [Ping timeout: 265 seconds]
Alloc has quit [Ping timeout: 256 seconds]
Alloc has joined #lisp
shifty has quit [Ping timeout: 260 seconds]
shifty has joined #lisp
emys has joined #lisp
Stanley00 has quit [Ping timeout: 256 seconds]
jonatack has quit [Ping timeout: 258 seconds]
jonatack has joined #lisp
saganman has quit [Ping timeout: 246 seconds]
gaqwas has quit [Read error: Connection reset by peer]
galex-713_ has joined #lisp
gaqwas has joined #lisp
gaqwas has quit [Changing host]
gaqwas has joined #lisp
galex-713 has quit [Ping timeout: 272 seconds]
gaqwas has quit [Client Quit]
gaqwas has joined #lisp
gaqwas has quit [Changing host]
gaqwas has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
Alloc has quit [Ping timeout: 240 seconds]
rogersm has joined #lisp
Alloc has joined #lisp
kpoeck has joined #lisp
jonatack has quit [Ping timeout: 260 seconds]
rogersm has quit [Remote host closed the connection]
random-nick has joined #lisp
jonatack has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
hnOsmium0001 has quit [Quit: Connection closed for inactivity]
sts-q has quit [Quit: ]
rogersm has joined #lisp
rogersm has quit [Client Quit]
sts-q has joined #lisp
narimiran has quit [Ping timeout: 264 seconds]
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
<phoe>
FYI, I've asked blix.com to intervene wrt the troll that repeatedly connects to #lisp from their network. If they don't respond, I'll ban the whole ASN.
daphnis has joined #lisp
enrio has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
daphnis has quit [Ping timeout: 265 seconds]
Psycomic has joined #lisp
<pve>
Hello! Can I expect closer-mop:class-prototype to work on a condition class on most implementations? It work on SBCL.
<no-defun-allowed>
I'm fairly sure you cannot expect condition classes to be standard-classes, but I don't know of any implementations that don't do that.
contrapunctus has joined #lisp
<pve>
no-defun-allowed: hmm, on SBCL they appear to not be standard-classes, but the method is still defined for condition classes
<no-defun-allowed>
I see.
dilated_dinosaur has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
<pve>
I need to use class-prototype when doing make-method-lambda to get the generic-function-method-class, but I wonder if it's ok to just do (make-condition 'my-condition) and use that as a "prototype"?
<pve>
oh no, I think I misread.. I don't need to do that at all
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
<pve>
It should work just fine after all.
contrapunctus has joined #lisp
<phoe>
pve: class-prototype will work everywhere.
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
<phoe>
SBCL has its own condition classes, and everywhere else conditions are standard objects with full MOP support.
contrapunctus has joined #lisp
jonatack has quit [Ping timeout: 240 seconds]
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
<pve>
phoe: thanks, that's good to know
voidhawk has quit [Ping timeout: 260 seconds]
akoana has left #lisp ["Leaving"]
galex-713_ has quit [Ping timeout: 258 seconds]
galex-713 has joined #lisp
* adlai
regrettably must continue violating his own interpretation of the topic
<phoe>
adlai: which topic?
<adlai>
is the purpose for which Franz's LLGPL exists primarily to enable the distribution of their compiler as closed-source?
<adlai>
phoe: I wrote, a few days ago, that I prefer to take the licensing issue elsewhere. it is a long and nasty conversation.
<no-defun-allowed>
As far as I know, it's to clean up how late binding interacts with component boundaries.
<adlai>
I also wrote [in #lispcafe] that the conversation on this topic should be in an officially logged channel.
<adlai>
thank you, no-defun-allowed ; I'll keep an eye out for that in my reading.
<no-defun-allowed>
That also includes redefinitions and generic functions, apparently, but it's just clearing up what's a derivative work and what's not.
<adlai>
I like how the LLGPL leaves the door open to manually diddling object code !
<adlai>
"object code (... or built with some other mechanisms)"
[df] has quit [Ping timeout: 256 seconds]
[df] has joined #lisp
daphnis has joined #lisp
dbotton_ has joined #lisp
dbotton has quit [Ping timeout: 240 seconds]
space_otter has quit [Remote host closed the connection]
<adlai>
well that's just an extraneous landmine: :ASDF has no slot named ASDF/COMPONENT:LICENCE.
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
Lycurgus has joined #lisp
pxpxp has joined #lisp
Mat5 has joined #lisp
rtypo has joined #lisp
Mat5 has quit [Client Quit]
Lycurgus has quit [Quit: Exeunt]
perrier-jouet has joined #lisp
shifty has quit [Ping timeout: 260 seconds]
EvW has joined #lisp
rumbler31_ has joined #lisp
shifty has joined #lisp
oxum has quit [Remote host closed the connection]
oxum has joined #lisp
shifty has quit [Ping timeout: 264 seconds]
scymtym has quit [Ping timeout: 256 seconds]
oxum has quit [Ping timeout: 260 seconds]
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
Stanley00 has joined #lisp
perrier-jouet has quit [Ping timeout: 258 seconds]
Inline has joined #lisp
rumbler31_ has quit [Ping timeout: 246 seconds]
scymtym has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
oxum has joined #lisp
amb007 has joined #lisp
enrio has quit [Read error: Connection reset by peer]
oxum has quit [Remote host closed the connection]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
* adlai
reads Greenbaum's document
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
iissaacc has quit [Ping timeout: 264 seconds]
amb007 has joined #lisp
orivej has quit [Ping timeout: 240 seconds]
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
kpoeck has quit [Ping timeout: 245 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
daphnis has quit [Ping timeout: 272 seconds]
dbotton has joined #lisp
rumbler31_ has joined #lisp
bitmapper has quit [Quit: Connection closed for inactivity]
dbotton_ has quit [Ping timeout: 272 seconds]
contrapunctus has left #lisp ["Disconnected: closed"]
enrio has joined #lisp
amb007 has joined #lisp
sonologico has joined #lisp
contrapunctus has joined #lisp
hendursa1 has quit [Quit: hendursa1]
hendursaga has joined #lisp
oxum has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
kirtai has joined #lisp
oxum has quit [Ping timeout: 260 seconds]
adlai has quit [Quit: will return]
jonatack has joined #lisp
hiroaki has joined #lisp
dbotton_ has joined #lisp
jesse1010 has joined #lisp
dbotton has quit [Ping timeout: 264 seconds]
galex-713 has quit [Ping timeout: 272 seconds]
pxpxp has quit [Ping timeout: 265 seconds]
rpg has joined #lisp
perrier-jouet has joined #lisp
Xach has quit [Ping timeout: 260 seconds]
Xach has joined #lisp
Xach has quit [Changing host]
Xach has joined #lisp
orivej has joined #lisp
galex-713 has joined #lisp
tankrim has quit [Quit: ERC (IRC client for Emacs 27.1.50)]
tankrim has joined #lisp
bitmapper has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
<phoe>
Xach: high five
adlai has joined #lisp
<Xach>
was ist los??
<phoe>
just a minor high-five moment on reddit
<Xach>
ah i see
<Xach>
i like crabbone suggesting switching to linux
oxum has joined #lisp
oxum has quit [Ping timeout: 265 seconds]
igemnace has joined #lisp
frost-lab has quit [Quit: Connection closed]
shifty has joined #lisp
shifty has quit [Ping timeout: 258 seconds]
shifty has joined #lisp
supercoven has joined #lisp
supercoven has quit [Max SendQ exceeded]
supercoven has joined #lisp
shifty has quit [Ping timeout: 246 seconds]
shifty has joined #lisp
<semz>
What would be a good way to strip down a save-lisp-and-die SBCL image a bit? 30MB is manageable, but still hurts for what is basically a large script with no overly complicated features.
<semz>
To preempt the inevitable "what about --script": Installing SBCL on the target is no option, sadly.
<scymtym>
semz: is your baseline with or without core compression?
pxpxp has joined #lisp
<semz>
without, tried that already
<scymtym>
and it didn't reduce the size? for me, it reduces the size to maybe between 25 % and 30 % of the uncompressed binary
<semz>
no, i meant the SBCL i'm using has no compression built in
adlai has left #lisp ["boredom, noun: a disorder pertaining to the absence of tension"]
<semz>
I'd rather not deal with SBCL's build process on Windows through Wine if I'm honest.
EvW has quit [Ping timeout: 240 seconds]
<scymtym>
in any case, if you use core compression, note the following mild disadvantages: 1) the binary will require libz on the target system 2) startup well be slightly slower (by a small fraction of a second) 3) the compressed core cannot be memory-mapped and thus not be shared between multiple processes. other than that core compression is very nice
<semz>
noted
<scymtym>
i thought the Windows build used mingw, not wine. building with wine is (was?) also possible, but /that/ gets really unpleasant
justache has quit [Ping timeout: 264 seconds]
saganman has joined #lisp
shifty has quit [Ping timeout: 256 seconds]
<scymtym>
(not because wine is bad or anything - i'm making good progress implementing a McCLIM Windows backend using wine)
shifty has joined #lisp
shifty has quit [Ping timeout: 260 seconds]
shifty has joined #lisp
srhm has joined #lisp
shifty has quit [Ping timeout: 246 seconds]
shifty has joined #lisp
Alloc has quit [Ping timeout: 240 seconds]
shifty has quit [Ping timeout: 240 seconds]
Alloc has joined #lisp
shifty has joined #lisp
igemnace has quit [Remote host closed the connection]
ggole has joined #lisp
daphnis has joined #lisp
Stanley00 has quit []
kiroul has joined #lisp
shifty has quit [Ping timeout: 264 seconds]
shifty has joined #lisp
emys has quit [Ping timeout: 256 seconds]
emys has joined #lisp
shifty has quit [Ping timeout: 260 seconds]
enrio has quit [Read error: Connection reset by peer]
daphnis has quit [Ping timeout: 240 seconds]
kpoeck has joined #lisp
oxum has joined #lisp
dbotton_ has quit [Quit: -a- Connection Timed Out]
<phoe>
hm, these don't have recent windows builds...
emys has quit [Ping timeout: 244 seconds]
oxum has quit [Ping timeout: 260 seconds]
dvdmuckle has joined #lisp
jprajzne has quit [Client Quit]
daphnis has joined #lisp
jprajzne has joined #lisp
emys has joined #lisp
<pxpxp>
This doesn't look like a lisp question, yet I can't find an answer on the Internet. Maybe because other languages/frameworks hide this possibility from the developers? So here it is: for those of you who have made websites with redirection (e.g. after login), did you use HTTP redirection or did you directly call the target handler? The second way avoids a round-trip time which seems unnecessary at first glance
ramHero has joined #lisp
<pxpxp>
e.g. client: POST login; server: Moved Permanently to ...; client: GET ...; server: sends the target page
<pxpxp>
vs
<pxpxp>
client: POST login; server: sends the target page
EvW has joined #lisp
<Psycomic>
What are the best libraries for UI in common lisp?
<pxpxp>
By "target page", I mean the page that will be served on login success, e.g. the main page
<beach>
Psycomic: Definitely McCLIM.
<beach>
Psycomic: Assuming you mean GUI.
<Psycomic>
yes. I heard about it, but wasn't it only for the X window system ?
<beach>
There is work on other backends, including a Windows backend and a browser backend. I don't remember the state of those. You can ask in #clim.
<kirtai>
isn't someone also making a backend for text terminals?
<beach>
kirtai: Yes, jackdaniel is working on that.
Alfr has joined #lisp
<kirtai>
very versatile :)
<Psycomic>
scymtym: ok thanks
<cl-arthur>
pxpxp: Both approaches should work in general. If it's for a login or other such rare occasions, it doesn't seem particularly performance-critical, though.
dbotton has quit [Quit: -a- Connection Timed Out]
dbotton has joined #lisp
<Xach>
pxpxp: you can do whatever you like but i would be concerned with someone looking at their profile page after login (for example), bookmarking it, and being brought back to the wrong place (the login handler URL)
oxum has joined #lisp
Gerula has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
oxum has quit [Ping timeout: 246 seconds]
contrapunctus has joined #lisp
justache has joined #lisp
daphnis has quit [Ping timeout: 265 seconds]
amb007 has quit [Read error: Connection reset by peer]
galex-713_ has joined #lisp
galex-713 has quit [Ping timeout: 272 seconds]
amb007 has joined #lisp
skapata has joined #lisp
bitmapper has quit [Quit: Connection closed for inactivity]
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
amb007 has quit [Read error: Connection reset by peer]
<rogersm>
I knew Kent's page, but I missed that one
<Nilby>
building towers of equal-ish-ness since 1959
contrapunctus has joined #lisp
ech has quit [Ping timeout: 240 seconds]
amb007 has joined #lisp
ski has quit [Ping timeout: 246 seconds]
<dbotton_>
so when using equalp is eql being used for the vectors or "equal" for each element?
gioyik has joined #lisp
ech has joined #lisp
dbotton_ has quit [Remote host closed the connection]
dbotton__ has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
<Xach>
it's all there in the spec page!
<Alfr>
dbotton, just write your own equivalence test that suits the problem, if the usual four don't fit the bill.
gaqwas has quit [Ping timeout: 265 seconds]
amb007 has quit [Read error: Connection reset by peer]
<Nilby>
sbcl has a well written docstring for equal
amb007 has joined #lisp
contrapunctus has joined #lisp
<Nilby>
s/equal/equalp/
amb007 has quit [Read error: Connection reset by peer]
<Alfr>
dbotton, regarding not well defined, just imagine that for some reason you really want 7 and 3 to be equivalent sometimes ...
amb007 has joined #lisp
kpoeck has quit [Remote host closed the connection]
<Nilby>
My opinion is if you're typing into a REPL where a docstring isn't a keypress away you are losing much productivity.
* Xach
has that setup with the spec as well
<dbotton__>
I will take a look there as well
<dbotton__>
Already noted down now the difference for the future, but now looking to see what was the reason that was chosen, in particular since different behavior for list, string and array
<dbotton__>
that is not in the spec
srhm has quit [Read error: Connection reset by peer]
<dbotton__>
I understand why the ranges of equality have a place, but why would equal's author choose a such a difference with arrays vs strings
rogersm has quit [Remote host closed the connection]
<Nilby>
few want to revisit the carnage of the eqv battles of 1968
<dbotton__>
I assume must have been an efficiency issue
<dbotton__>
I find understand the reason behind an implementation important
<dbotton__>
or difference between a list and a vector
<dbotton__>
maybe in those days vectors were used for very large lists
rogersm has joined #lisp
_whitelogger has joined #lisp
<dbotton__>
thank you all though for the help, is it is what it is
dbotton__ has quit [Remote host closed the connection]
daphnis has quit [Ping timeout: 240 seconds]
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
kaftejiman has joined #lisp
hiroaki has quit [Ping timeout: 272 seconds]
kaftejiman has quit [Remote host closed the connection]
kaftejiman has joined #lisp
<phoe>
dbotton: basically, the issue is what do you mean when you think "equal"
<phoe>
and in which context you mean it
oxum has joined #lisp
Jeanne-Kamikaze has joined #lisp
<phoe>
the specific details of how eq/eql/equal/equalp don't matter from this point of view since even if you had 50 different equality operators then you could still find some place where you'll need a 51st one
<phoe>
s/don't matter/work don't matter/
<phoe>
this is because equality is in the eye of the comparator
pve has quit [Quit: leaving]
random-nick has quit [Ping timeout: 258 seconds]
gaqwas has joined #lisp
gaqwas has joined #lisp
gaqwas has quit [Changing host]
shifty has joined #lisp
<dbotton>
understood. thank you
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
sonologico has quit [Remote host closed the connection]
Psycomic has quit [Ping timeout: 272 seconds]
shifty has quit [Ping timeout: 260 seconds]
shifty has joined #lisp
iissaacc has joined #lisp
dbotton_ has joined #lisp
supercoven has quit [Ping timeout: 260 seconds]
Aurora_v_kosmose has joined #lisp
shifty has quit [Ping timeout: 240 seconds]
dbotton has quit [Ping timeout: 260 seconds]
oxum has quit [Ping timeout: 240 seconds]
dra has joined #lisp
kaftejiman has quit [Remote host closed the connection]
iissaacc has quit [Ping timeout: 256 seconds]
gaqwas has quit [Ping timeout: 265 seconds]
iissaacc has joined #lisp
Alfr has quit [Remote host closed the connection]
Alfr has joined #lisp
voidhawk has joined #lisp
IPmonger has joined #lisp
oxum has joined #lisp
iissaacc has quit [Remote host closed the connection]
iissaacc has joined #lisp
oxum has quit [Ping timeout: 246 seconds]
galex-713 has quit [Ping timeout: 272 seconds]
<phoe>
dbotton_: basically
<phoe>
let me ask you this question: is (list 1 2 3) equal to (list 1 2 3)? (and by that I mean the generic English sense, not having them compared by CL:EQUAL)
<phoe>
yes or no
<phoe>
if you answer yes, then I say that when I SETF CAR of the first one then the CAR of the other is not modified, hence they must not be equal to one another
<aeth>
phoe: that's one of the main arguments people make for immutability, actually...
<aeth>
it keeps equality intuitive
<phoe>
if you answer no, then I say that I can substitute one for the other in a call to e.g. PRINT, or MAPCAR #'1+, hence they must be equal to one another
<phoe>
aeth: yes, I've mentioned this up above - functional data structures have well-defined equality
<phoe>
mostly because they no longer have identity that is as meaningful as it would be in non-functional contexts
<aeth>
although you still get an issue with types, like is 1 equal to 1.0? Well, they're =, but that's because = is defined that way.
<aeth>
(to use an example of a functional data structure)
<no-defun-allowed>
Is (lambda (x) x) equal to (lambda (y) y)?
<no-defun-allowed>
The earlier you give up defining equality on functions, the better.
<aeth>
no-defun-allowed: iirc, Scheme permits that (even encourages that?) but that's really, really hard to do.
<phoe>
don't even get me started on----- oh
<phoe>
yes
nicktick has quit [Ping timeout: 260 seconds]
<no-defun-allowed>
aeth: What about (lambda (x) (check-type x number) x) and (lambda (x) (- (- x)))?
<phoe>
comparing functions is a big no-no because then you get into undecidability real quick
<aeth>
no-defun-allowed: right, that's one of two things I don't like about Scheme's equality rules; the other being that the more advanced equality forms don't use = so (equal? 1 1.0) => #f
<phoe>
no-defun-allowed: they are not equal, because (- (- x)) is the --x operator from C++ (see the double dash?), hence, it's equivalent to (decf x)
* phoe
hides
<no-defun-allowed>
phoe: Of course.
<phoe>
anyway
<phoe>
tl;dr define equality and only then talk about equality
* phoe
lies down for nightly garbage collection
dra has quit [Quit: Leaving]
cl-arthur has quit [Ping timeout: 272 seconds]
hnOsmium0001 has quit [Quit: Connection closed for inactivity]
<dbotton_>
phoe that I understand. The issue I was having once understanding which equality was intended was equal has different forms of equality depending on type
<dbotton_>
and in the case if vector/array even if the same basic type with string
<dbotton_>
there are differences
<dbotton_>
as pointed out it was an arbitrary choice, but still there must have been some reason to do so
<dbotton_>
between vector and string seems clear to offer equal and equalp as case sensitive or insensitive comparison
<phoe>
dbotton_: likely this was an effect of the fact that if a predicate applies recursive equality then it applies itself only
<dbotton_>
but to choose to compare using eq for arrays there must have been some reason
<phoe>
e.g. EQUAL doesn't apply EQL anywhere, other than for the cases where it decays into EQL and/or EQ
<phoe>
it always applies EQUAL
<phoe>
same with EQUALP, it applies EQUALP all way round
lottaquestions_ has joined #lisp
lottaquestions_ has quit [Client Quit]
<phoe>
you can define your own equality predicate that works differently, e.g. compares vectors by their size/element type/descends into elements by applying itself and otherwise behaves like EQUAL
<dbotton_>
what was the reason it decays for arrays?
lottaquestions has joined #lisp
<phoe>
I guess, and only guess, this is for performance reasons and because arrays are not functional data structures like conses
<dbotton_>
of course I can define such that is the beauty I am finding with lisp
<phoe>
comparing conses by value makes sense, but comparing arrays by value is not something that is requested as usually as it is for conses
<phoe>
if you are doing arrays then you are most likely mutating them, so it makes sense to compare mutable data structures by identity first and foremost
<phoe>
that's just my wild guess though.
<dbotton_>
that was my guess i made earlier. is there an anotated standard like ada has?
<phoe>
I think we'd need to figure out which Lisp dialect EQ/EQL/EQUAL/EQUALP came from
<phoe>
and figure out the rationale from there
<dbotton_>
good point, the natural mutability
<dbotton_>
for arrays
<aeth>
someone needs to DEFGENERIC a bunch of various equality names, for library use
lottaquestions has quit [Client Quit]
<phoe>
and do what later
<aeth>
call it trivial-equality... just DEFGENERICs for the built-in data types (there aren't that many) and relying on user code for the rest