如何使用内置列表功能“过滤器”

时间:2009-05-07 19:45:30

标签: list filter scheme

请帮我使用DrScheme内置功能“过滤器”。

“创建一个消耗数字'Max'的函数”hello“和一个数字列表'L',产生一个'L'中小于'Max'的数字列表。”

修改取自格式的评论

这是我到目前为止所拥有的

(define (smaller? n Max) 
  (cond 
    [(> Max n) n] 
    [else empty])) 
(define (hello Max L) 
  (filter smaller? L))

我不知道如何将Max实现到函数hello中。

2 个答案:

答案 0 :(得分:1)

使用您的smaller?定义,我会选择类似

的内容
(define (hello Max L)
  (filter (lambda (n) (smaller? n Max)) L))

这使用lambda函数,它是对hello函数的Max参数的闭包。所以它“嵌入”Max在用于过滤的lambda函数中。

答案 1 :(得分:0)

提示:您可以使用lambda

创建匿名函数
(lambda (x) (have-fun-with x))

编辑:另一个提示:(> Max n)已经返回一个布尔值,你不需要一个封闭的cond结构。