这是书中的一个例子:
(reduce (lambda (best itemx)
(if (and (evenp itemx) (> itemx best))
itemx
best))
'(1 2 3 4 5 6)
:initial-value 0)
它显示在书中运行良好,但在我的SBCL REPL中,我得到一个错误“undefinied variabled”,它将该变量的名称作为空白(或者可能是几个空格)。
这里有什么奇怪的东西吗?
我也试过把它变成一个函数:
(defun find-largest-even (list)
(reduce (lambda (best itemx)
(if (and (evenp itemx) (> itemx best))
itemx
best))
list
:initial-value 0))
但是这不能编译。它突出显示了lambda参数和报告中的itemx
:the octet sequence #(244) cannot be decoded.
答案 0 :(得分:2)
粘贴的代码很好。
您描述的行为表示非ascii字符上的lisp窒息。
请将代码复制到Emacs中,并使用例如
查找有问题的字符(defun my-search-for-non-acsii ()
(interactive)
(skip-chars-forward "\000-\177"))