Using the Windows executable of the 0.4.0 release:
$ ./chime.exe
> (nil)
I don't know how to evaluate this yet: (nil)
Two issues:
Phrasing: "yet" makes it sound like the evaluator is missing a case, the presence of which would allow it to handle (nil). That is not so; (nil) tries to apply a nil, which can not be applied. Chime is accepting blame for something that is not its fault. (Maybe this phrasing made more sense during active development.)
What's more relevant here is the value that causes the 'cannot-apply error — but the failing value is not printed, only the expression. In a debugging situation, the value is likely to be the much more important detail, basically answering "why did this call fail?". A second example might help here:
> (set foo "not a function, but a string")
"not a function, but a string"
> (foo 1 2 3)
I don't know how to evaluate this yet: (foo 1 2 3)
Using the Windows executable of the 0.4.0 release:
Two issues:
Phrasing: "yet" makes it sound like the evaluator is missing a case, the presence of which would allow it to handle
(nil)
. That is not so;(nil)
tries to apply anil
, which can not be applied. Chime is accepting blame for something that is not its fault. (Maybe this phrasing made more sense during active development.)What's more relevant here is the value that causes the
'cannot-apply
error — but the failing value is not printed, only the expression. In a debugging situation, the value is likely to be the much more important detail, basically answering "why did this call fail?". A second example might help here: