1

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

“创建一个函数“hello”,它使用一个数字'Max'和一个数字列表'L',生成一个小于'Max'的'L'中的数字列表。”

编辑取自格式化的评论

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

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

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

4

2 回答 2

1

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

(define (hello Max L)
  (filter (lambda (n) (smaller? n Max)) L))

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

于 2009-05-07T23:00:44.940 回答
0

提示:您可以使用以下命令创建匿名函数lambda

(lambda (x) (have-fun-with x))

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

于 2009-05-07T21:55:37.310 回答