IRC channel logs

2017-01-01.log

back to list of logs

<Partmedia>oof, so #<undefined> is not a "false" value?
<random-nick>only #f and #nil are falsy
<taylan>where does #<undefined> come from? or was #<unspecified> meant instead?
<Partmedia>I think I meant unspecified, the return value for a function that doesn't return anything
<davexunit>the truthiness of a procedure that returns nothing is unspecified in Scheme
<civodul>hey davexunit!
<davexunit>hey civodul
<civodul>a procedure that returns zero values has no return value
<davexunit>correct
<civodul>therefore we cannot talk about the truthiness of its return value
<davexunit>I was responding to Partmedia above
<civodul>right, sorry
<davexunit>who was surprised that *unspecified* is not falsy
<davexunit>I guess my explanation doesn't help
<davexunit>since #f is the only falsy value in scheme, a procedure that returns nothing (or unspecified) will trigger the consequent expression of an 'if' form
<davexunit>in Guile, that is.
<davexunit>which can be surprising the first time you see it
<vinipsmaker>will this be the year of GuileEmacs?
<vinipsmaker>happy new year, btw
<Partmedia>ACTION is also surprised that #nil isn't the same as empty list... and needs a "surprises in Guile manual"
<Partmedia>I'll get the hang of it eventually :)
<vinipsmaker>Partmedia, oh, so you're assuming BT Templeton work where he left off? Nice :D
<vinipsmaker>so at least we won't need to compile a special branch of guile as the "wip branch" will go into mainline? That's already huge :D :D :D
***random-nick is now known as Guest85587
***random-nickname is now known as random-nick
<taylan>Partmedia: #nil is neither eqv? to #f nor to (). reason: it has to be usable as a list-terminator, and if it were eqv? to #f then that would mean #f would likewise have to work as a list-terminator, which would go against the Scheme standard. similarly, #nil has to be a false value, and if it were eqv? to () then () would also have to be a false value, which would also breach the standard.
<taylan>so it's simply a separate value that works as a list terminator as well as being a false value
<Partmedia>vinipsmaker, mostly because I'm coming from non-standard Schemes and CL. I don't know what Emacs Lisp is :p
<Partmedia>taylan, thanks that makes a lot of sense