请帮我使用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中。
答案 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
结构。