【发布时间】:2016-05-02 02:48:54
【问题描述】:
我收到以下代码的错误消息。这只是一个简单的语法错误,但作为初学者我不确定是什么问题。有人知道吗?
(define qsort
(lambda (input-list)
(define sort-pivot-iter
(lambda (input-list pivot acc)
(let ([current (first input-list)]
[pivot-less (first acc)]
[pivot-greater-equal (first (rest acc))])
(cond (
[(empty? input-list) acc]
[(< current pivot) (sort-pivot-iter (rest input-list) pivot
'((cons current pivot-less) pivot-greater-equal))]
[(>= current pivot) (sort-pivot-iter (rest input-list) pivot
'(pivot-less (cons current pivot-greater-equal)))])))))
(let* ([pivot (first input-list)]
[pivot-sorted (sort-pivot-iter
(rest input-list) pivot (list empty empty))]
[left (first pivot-sorted)]
[right (first (rest pivot-sorted))])
(cond
[(< (length input-list) 2) input-list]
[else (append (qsort left) '(pivot) (qsort right))]))))
(qsort '(2 3 1))
【问题讨论】:
标签: racket