我正在嘗試在lisp中以升序排列3個數字的排序列表。 但編譯和加載時出現錯誤,如「if的錯誤數量」。如何在lisp中以升序排列列表中的3個數字
(defun order (n1 n2 n3)
(if (>= n1 n2)
(progn(progn(if (>= n1 n3)
(progn(if (>= n2 n3) (progn(setf max n1) (setf mid n2) (setf min n3)) (progn(setf max n1) (setf mid n3) (setf min n2))))
(progn(setf max n3) (setf mid n1) (setf min n2))
)))
(progn(progn(if (< n1 n3)
(progn(if (>= n2 n3) (progn(setf max n2) (setf mid n3) (setf min n1)) (progn(setf max n3) (setf mid n2) (setf min n1))))
((setf max n2) (setf mid n1) (setf min n3))
)))
))
(list min mid max)
)
真正的好奇心:你認爲'progn'有什麼用? – coredump
我認爲預測是不能發揮功能,但我不確定.... –
downvoted因爲代碼沒有縮進/格式在任何有用的方式。這是不可讀的。 –