<Partmedia>oof, so #<undefined> is not a "false" value? <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>a procedure that returns zero values has no return value <civodul>therefore we cannot talk about the truthiness of its return value <davexunit>who was surprised that *unspecified* is not falsy <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>which can be surprising the first time you see it <Partmedia>ACTION is also surprised that #nil isn't the same as empty list... and needs a "surprises in Guile manual" <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