JSCL - 为什么会出现这个神秘的错误?

JSCL - why this mysterious error?

http://learnlispthehardway.org/try-lisp/

CL-USER> (defun saynextof ( a b c )(write a)) 
SAYNEXTOF
CL-USER> (saynextof "fred" "jim" "shiela")
ERROR[!]: too few arguments

(对于此表单验证的好处:这确实完整地描述了问题。)

JSCL 在 write 函数中需要(与 standard 不同)多个参数,所以这是错误的原因。

如果您改用print,则不会出现该错误。

似乎是write函数抛出的错误:

CL-USER> (write "foo")
ERROR[!]: too few arguments
CL-USER> 

我刚刚从GitHub下载了最新版本的JSCL并编译了它。使用该版本,不会发生错误。 JSCL print.lisp 的提交消息表明在 write 的实现中曾经存在问题,这可能导致 "too few arguments" 错误:

Author: David Vazquez <davazp@gmail.com>
Date:   Mon Jan 4 19:23:28 2016 +0100

    Fix the write function

    It was using write-aux with too few arguments.