我正在制作插入列表功能。它看起来像:
(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)))
我必须结合这两个功能。 第一个插入功能在&#39; k&#39;中没有任何内容时起作用。当第二个插入单元功能在&#39; k&#39;。
中有任何元素时起作用 我认为我需要使用“cond&#39;”,我认为&#39; cond&#39;是(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&#39;在这个没有错误的问题上......
请教我正确的代码。
答案 0 :(得分:0)
在Common Lisp(和其他一般的lisps)中,(foo ...)
总是意味着以下之一:
如果您习惯使用非lisp编程语言,那么您通常写为foo(...)
的内容为(foo ...)
。