【发布时间】:2011-07-18 21:20:58
【问题描述】:
使用 insert 编写一个函数 sort1,它将整数列表按升序排序。 [如果列表为零,我们就完成了。否则将列表的汽车插入排序后的 cdr。]
这是我设法做到的,我无法在一个名为 sort1 的函数中定义这两个函数:
(defun insert (item lst &optional (key #'<))
(if (null lst)
(list item)
(if (funcall key item (car lst))
(cons item lst)
(cons (car lst) (insert item (cdr lst) key)))))
(defun insertion-sort (lst &optional (key #'<))
(if (null lst)
lst
(insert (car lst) (insertion-sort (cdr lst) key) key)))
【问题讨论】:
-
哇,这是我们的第一个递归问题标题吗?