0
我想写一个函数合并,然后排序列表,但现在我有两个不同的功能;合并它和分类它的一个。所以我试图编写另一个函数,它调用了函数,因此它可以在该函数中一次合并和排序列表。计划:合并和排序功能
这是我有:
;; this merges the list
(define (merge l1 l2)
(cond ((null? l1) l2)
((null? l2) l1)
((< (car l1) (car l2)) (cons (car l1) (merge (cdr l1) l2)))
(else (cons (car l2) (merge l1 (cdr l2))))))
;; this sorts the list
(define sort
(lambda (lst)
(if (null? lst)
'()
(insert (car lst)
(sort (cdr lst))))))
(define insert
(lambda (elt sorted-lst)
(if (null? sorted-lst)
(list elt)
(if (<= elt (car sorted-lst))
(cons elt sorted-lst)
(cons (car sorted-lst)
(insert elt (cdr sorted-lst)))))))
你只是w一个函数`(define(merge-sort l1 l2)(sort(merge l1 l2)))`,这个函数被称为'(merge-sort(list 8 3 7 4 9 2)(list 5 1 0 6 4) )``在'(0 1 2 3 4 4 5 6 7 8 9)'结果`? – 2011-02-04 04:20:15