【发布时间】:2009-07-07 06:50:07
【问题描述】:
我是一名 C++ 程序员,我写了这段代码来看看我是否可以在功能上思考 :) 有什么改进的提示吗?
(define (append listOne listTwo)
(cond
((null? listOne) listTwo)
(else (cons (car listOne) (append (cdr listOne) listTwo)))))
(define (merge listOne listTwo)
(cond
((null? listOne) listTwo)
((null? listTwo) listOne)
((< (car listOne) (car listTwo))
(append (cons (car listOne) '())
(merge (cdr listOne) listTwo)))
((= (car listOne) (car listTwo))
(append (cons (car listOne) '())
(merge (cdr listOne) listTwo)))
(else (append (cons (car listTwo) '())
(merge listOne (cdr listTwo))))))
(define (mergesort lis)
(cond
((null? lis) '())
((null? (cdr lis)) lis)
(else (merge (cons (car lis) '())
(mergesort (cdr lis))))))
(mergesort '(99 77 88 66 44 55 33 11 22 0))
【问题讨论】:
-
对我来说它看起来很标准 :) 这是另一个版本:ironscheme.svn.codeplex.com/svn/IronScheme/IronScheme.Console/…
-
哦,谢谢,我去看看 IronScheme :)
-
我冒昧地格式化了你的代码。
标签: algorithm scheme mergesort