【发布时间】:2019-01-13 11:30:16
【问题描述】:
我遇到了以下问题:当尝试将 APPLY 函数与 MAPCAR 调用一起使用时,传递给 APPLY 的 lambda 函数仅包含一个参数,即 MAPCAR 返回的列表,出现以下错误:
*** - EVAL/APPLY: too many arguments given to :LAMBDA
以下代码识别异构列表是否在任何级别的最后一个原子都是数字原子。
(DEFUN hasLastNumeric (L)
(COND
((NUMBERP L) T)
((ATOM L) NIL)
((LISTP L)
(APPLY #'(LAMBDA (Lst)
(COND ((EQ (LAST Lst) T) T)
(T NIL)))
(MAPCAR 'hasLastNumeric L)))))
(WRITE (hasLastNumeric '(1 2 5)))
【问题讨论】:
-
请注意,该语言称为 Common Lisp,简称:CL。还有一个 Common Lisp 的实现,称为 CLISP。
标签: lisp common-lisp apply map-function