我正在Scheme中编写合并排序,我很好奇为什么这不起作用......
这是我希望工作的实现,但没有:
(define (mergesort op l)
(cond ((null? l) l)
((null? (cdr l)) l)
(else (merge op (car l)
(mergesort op (cdr l))))
)
)
这是“正确”的实现。
(define (mergesort op l)
(cond ((null? l) l)
((null? (cdr l)) l)
(else (merge op (cons (car l) (list))
(mergesort op (cdr l))))
)
)
为什么我必须 (cons (car l) (list)) 在尝试将其与递归合并之前?