Scheme 方案(Dr racket)过滤器问题

Scheme 方案(Dr racket)过滤器问题,scheme,racket,Scheme,Racket,我是scheme的新手,正在尝试在其中编写一个快速排序,但我似乎无法找到筛选函数。我相信过滤器有两个参数,一个过程可以应用于列表中的每个元素,然后是一个列表,该过程应用于该列表 #lang racket ;Quick sort (define(quickSort l) (cond [(null? l)('(()))] [(append(quickSort(filter(lambda(x)(< x car l))(cdr l))))(list(car

我是scheme的新手,正在尝试在其中编写一个快速排序,但我似乎无法找到筛选函数。我相信过滤器有两个参数,一个过程可以应用于列表中的每个元素,然后是一个列表,该过程应用于该列表

#lang racket

;Quick sort
(define(quickSort l)
    (cond
        [(null? l)('(()))]
        [(append(quickSort(filter(lambda(x)(< x car l))(cdr l))))(list(car l))(quickSort(filter(lambda(x)(>= x car l)(cdr l) cdr l)))]
        )
  )

(quickSort '(5 9 4 6 8 7 1 9))
#朗球拍
;快速排序
(定义(快速排序l)
(续)
[(空?l)('(())]
[(附加(快速排序(筛选器(lambda(x)(=x car l)(cdr l)cdr l)))]
)
)
(快速排序’(59468719))
这给了我一个违反合同的情况,说( 我尝试提取筛选函数并自行运行,如下所示:

(过滤器(λ(x)( 但这告诉我只有一个论点。我不知道为什么。在我看来,有两种


有什么想法吗?我最初认为filter函数的参数可能有问题,但现在我想可能lambda不能接受(car l)参数?它在通过之前不会进行评估吗

缩进您的代码,然后您将看到有语法错误。我已在以下方面对其进行了更正:

;Quick sort
(define (quickSort l)
  (cond [(null? l) '()]
        [else (append (quickSort (filter (lambda (x) (< x (car l))) (cdr l))) 
                      (list (car l))
                      (quickSort (filter (lambda (x) (>= x (car l))) (cdr l))))]))
;快速排序
(定义(快速排序l)
(cond[(null?l)'()]
[else(附加(快速排序(过滤器(lambda(x)(=x(车l)))(cdr l)))