我正在尝试在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因为代码没有缩进/格式在任何有用的方式。这是不可读的。 –