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

发布于 2024-07-19 07:35:33 字数 345 浏览 4 评论 0原文

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

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

编辑 取自格式化的评论,

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

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

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

Please help me with using the DrScheme built-in function "filter".

"create a function "hello" that consumes a number 'Max', and a list of numbers 'L', produce a list of numbers in 'L' that are smaller than 'Max'."

edit Taken from the comments for formatting

this is what i have so far

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

I don't know how to implement Max into the function hello.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

纸伞微斜 2024-07-26 07:35:33

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

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

This 使用 lambda 函数,该函数是 hello 函数的 Max 参数的闭包。 因此,它将 Max 嵌入到用于过滤的 lambda 函数中。

Using your smaller? definition, I would go for something like

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

This uses a lambda function which is a closure over the Max argument to the hello function. So it "embeds" Max inside the lambda function used for filtering.

堇色安年 2024-07-26 07:35:33

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

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

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

Hint: You can create an anonymous function with lambda:

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

edit: Another hint: (> Max n) already returns a boolean, you don't need an enclosing cond structure.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文