Lisp Reduce调用从REPL和编译器发出奇数错误

Lisp Reduce调用从REPL和编译器发出奇数错误,lisp,common-lisp,Lisp,Common Lisp,这是一本书中的一个例子: (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”,它将该变量的名

这是一本书中的一个例子:

(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
八位字节序列(244)无法解码。

粘贴的代码很好

您描述的行为表示lisp被非ascii字符阻塞

请将代码复制到Emacs中,并使用,例如

(defun my-search-for-non-acsii ()
  (interactive)
  (skip-chars-forward "\000-\177"))

我建议你不要只给我们代码,然后问出什么问题。这不是一个大规模的代码转储,但它仍然只是问出了什么问题。@someone或其他人,这正是这个网站要问的问题。我看不出有什么问题@有些人或其他SO充满了代码块,人们在其中合法地尝试调试和查找错误。所以他们当然会问出什么问题了?谢谢,这有助于了解这些错误是如何转化为问题的