ich mache eine Einfügeliste Funktion. Schaut es, wie:geläufig Lisp. cond in defun
(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)))
und ich muss diese beiden Funktion kombinieren. Die erste Einfügefunktion funktioniert, wenn in 'k' nichts ist. und die zweite Einfügezellenfunktion arbeitet, wenn Elemente in 'k' vorhanden sind.
ich dachte, ich brauche 'cond' zu verwenden, und ich dachte, 'cond' ist
(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))
so ich dies gemacht:
(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))))))
und Fehler:
*** - EVAL: undefined function X
wie kann ich 'cond' bei diesem problem ohne fehler verwenden ...
Bitte bringen Sie mir den richtigen Code bei.
'(INSERT1 (x y))' sollte '(INSERT1 x y)' sein, andernfalls wird 'x' als eine Funktion interpretiert, die auf' y' angewendet wird. – Renzo
oh .. danke Renzo. es funktioniert jetzt. – Hoon