lambda - 应该是lambda表达式-LISP

标签 lambda expression lisp

我的代码只有一个功能:

(defun equalprev (x y)
  (cond ((or (atom x) (atom y))
         (if (not (null isLoop))
             t
           ((setq list1 (append list1 (list x)))
            (setq list2 (append list2 (list y)))
            (eql x y))))
        ((equalprev (car x) (car y))
         (equalprev (cdr x) (cdr y)))))

*** - SYSTEM::%EXPAND-FORM: (SETQ LIST1 (APPEND LIST1 (LIST X))) should be a `lambda`
expression
The following restarts are available:
ABORT          :R1      Abort main loop

感谢任何帮助

最佳答案

'if' 表达式的替代表达式是 ((set! ...) ...)。第一个位置需要是函数或句法形式。在这种情况下你需要 progn as:

(progn
  (setq list1 ...)
  (setq list2 ...)
  (eql x y))

关于lambda - 应该是lambda表达式-LISP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10769861/

相关文章:

python - Spark 中使用 Lambda 进行列表转换

c++ - 将具有默认参数的 lambda 函数复制到变量

c++ - 将 lambda 作为参数传递时重载函数

c# - 创建、组合和缓存 lambda 表达式

lisp - clisp中atoi对应的标准函数是什么?

lisp - Common Lisp 函数可以按位置或关键字接受参数吗?

input - 为什么 read-line 运行两次以从 Lisp 中的文件中读取?

c# - 如何使用 lambda 表达式来过滤数据行?

algorithm - 如何去掉数学表达式中不必要的括号

asp.net - <#=#>是什么意思