gpt4 book ai didi

lisp - 如何让 defun 接受一个列表作为它的参数

转载 作者:太空宇宙 更新时间:2023-11-03 19:04:39 26 4
gpt4 key购买 nike

我正在尝试学习 lisp 并搜索了问题并找到了我无法理解的答案。有人可以帮助我解决我正在尝试的问题。

所以我创建了一个基本函数 RotateL,它应该将列表作为其参数并返回一个新列表,其中前一个元素变为最后一个。

所以我创造了

    (defun rotate (L)
(Append ( rest L) (first L)))
ROTATE

我不能将 L 设置为 a (a b c) 我尝试了 SETQ L '( a b c) 并且最后我做了 (rotate L) 它给了我也是一个错误。

我认为这是因为我试图在值 L 中放入一个列表而不是一个元素。

请有人解释和帮助。

最佳答案

既然你已经深深地迷失了:

? (defun rotate (L) (append (rest L) (first L)))
ROTATE

? (rotate '(a b c))
(B C . A)

? (setq X '(x y z))
(X Y Z)
? (rotate X)
(Y Z . X)

但是你看到你的函数被破坏了,通过添加一个 list 来纠正:

? (defun rotate (L) (append (rest L) (list (first L))))
ROTATE
? (rotate '(a b c))
(B C A)
? (rotate X)
(Y Z X)

您可能需要查看正式实际 参数的含义。

关于lisp - 如何让 defun 接受一个列表作为它的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23556827/

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