gpt4 book ai didi

lisp - 普通的口齿不清。德芬的条件

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

我正在制作插入列表功能。它看起来像:

(defun INSERT1 (x y)
(setq temp (list x y))
(setq k (sort temp #'< :key #'car)))

(defun INSERT2 (x y)
(setq temp (cons x y))
(setq k (sort temp #'< :key #'car)))

我必须结合这两个功能。当'k'中没有任何内容时,第一个插入函数起作用。当“k”中有任何元素时,第二个 insertcell 函数起作用。

我以为我需要使用'cond',我认为'cond'是

(cond ((true/false)if true execute here and return)
((true/false)if true execute here and return)
......
((true/false)if true execute here and return))

所以我做了这个:

(defun INSERT1 (x y)
(setq temp (list x y))
(setq k (sort temp #'< :key #'car)))

(defun INSERT2 (x y)
(setq temp (cons x y))
(setq k (sort temp #'< :key #'car)))

(defun INSERTCELL (x y)
(setq temp nil)
(cond
((eq (car temp) nil) (INSERT1 (x y))
(t (INSERT2 (x y))))))

和错误:

*** - EVAL: undefined function X

我怎样才能在没有错误的情况下使用“cond”...

请教我正确的代码。

最佳答案

在 Common Lisp(以及一般的其他 lisp)中,(foo ...) 总是表示以下之一:

  • 调用函数 FOO
  • 展开宏FOO
  • 用特殊运算符 FOO 做点什么

如果您习惯使用非 lisp 编程语言,您通常会写成 foo(...) 的内容会写成 (foo ...) .

关于lisp - 普通的口齿不清。德芬的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36575446/

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