gpt4 book ai didi

lisp - 在 Lisp 中应用的参数

转载 作者:太空宇宙 更新时间:2023-11-03 18:56:08 25 4
gpt4 key购买 nike

我遇到了以下问题:当尝试将 APPLY 函数与 MAPCAR 调用一起使用时,传递给 APPLY 的 lambda 函数仅包含一个参数,即 MAPCAR 返回的列表,出现以下错误:*** - EVAL/APPLY:给 :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)))

最佳答案

您不需要申请。你为什么要用它?请记住:APPLY 调用函数并使用提供的列表作为参数列表。

MAPCAR 返回一个列表。

(let ((foo (mapcar #'1+ '(1 2 3 4))))
(cond ((eql (last foo) ...) ...)
...))

还要检查 last 实际返回的内容...

关于lisp - 在 Lisp 中应用的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54168402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com