Lambda 球拍功能,是错误的还是我遗漏了什么

Lambda 球拍功能,是错误的还是我遗漏了什么,lambda,functional-programming,scheme,racket,Lambda,Functional Programming,Scheme,Racket,在racket的书籍领域中找到此函数: (define (my-filter pred lst) (cond [(empty? lst) empty] [(pred (first lst)) (cons (first lst) (my-filter (rest lst)))] [else (my-filter (rest lst))])) 称之为: (my-filter (lambda (i) (> i 5)) `(1 2 3 4 5

在racket的书籍领域中找到此函数:

(define (my-filter pred lst)
  (cond [(empty? lst) empty]
        [(pred (first lst))
         (cons (first lst) (my-filter (rest lst)))]
        [else (my-filter (rest lst))]))
称之为:

(my-filter (lambda (i) (> i 5)) `(1 2 3 4 5 6 7 8))
给出:

my-filter: arity mismatch;
 the expected number of arguments does not match the given number
  expected: 2
  given: 1
  arguments...:
   '(2 3 4 5 6 7 8)
所以我把它改成:

(define (my-filter pred lst)
  (cond [(empty? lst) empty]
        [(pred (first lst))
         (cons (first lst) (my-filter pred (rest lst)))]
        [else (my-filter pred (rest lst))]))

现在它工作得很好。所以我在想我是不是错过了什么,还是这本书错了?

结果证明这本书错了。在球拍领域发现了这个。我想这可能是我不明白的,因为这是我第一天做球拍

第114页my filter函数的定义分为两部分 参数,但循环时仅提供一个参数。定义 应改为:


原来这本书是错的。在球拍领域发现了这个。我想这可能是我不明白的,因为这是我第一天做球拍

第114页my filter函数的定义分为两部分 参数,但循环时仅提供一个参数。定义 应改为:


原来这本书是错的。在球拍领域发现了这个。我想这可能是我不明白的,因为这是我第一天做球拍

第114页my filter函数的定义分为两部分 参数,但循环时仅提供一个参数。定义 应改为:


原来这本书是错的。在球拍领域发现了这个。我想这可能是我不明白的,因为这是我第一天做球拍

第114页my filter函数的定义分为两部分 参数,但循环时仅提供一个参数。定义 应改为:



看起来只是一个typo@jozefg我编辑了答案,在rkt中将其重命名为my-filter2,因为它与另一个答案(它们在同一个文件中)冲突,与问题无关,但您使用的逗号运算符非常混乱。@sepp2k谢谢您,我是一个初学者。更新了问题。看起来只是一个问题typo@jozefg我编辑了答案,在rkt中将其重命名为my-filter2,因为它与另一个答案(它们在同一个文件中)冲突,与问题无关,但您使用的逗号运算符非常混乱。@sepp2k谢谢您,我是一个初学者。更新了问题。看起来只是一个问题typo@jozefg我编辑了答案,在rkt中将其重命名为my-filter2,因为它与另一个答案(它们在同一个文件中)冲突,与问题无关,但您使用的逗号运算符非常混乱。@sepp2k谢谢您,我是一个初学者。更新了问题。看起来只是一个问题typo@jozefg我编辑了答案,在rkt中将其重命名为my-filter2,因为它与另一个答案(它们在同一个文件中)冲突,与问题无关,但您使用的逗号运算符非常混乱。@sepp2k谢谢您,我是一个初学者。更新了问题。感谢链接到我们的勘误表页面。另外,仅供参考,我们的出版商正准备进行第二次印刷。此更新副本将包含此修复和我们收到的所有其他勘误表提交。感谢链接到我们的勘误表页面。另外,仅供参考,我们的出版商正准备进行第二次印刷。此更新副本将包含此修复和我们收到的所有其他勘误表提交。感谢链接到我们的勘误表页面。另外,仅供参考,我们的出版商正准备进行第二次印刷。此更新副本将包含此修复和我们收到的所有其他勘误表提交。感谢链接到我们的勘误表页面。另外,仅供参考,我们的出版商正准备进行第二次印刷。此更新副本将包含此修复和我们收到的所有其他勘误表提交。
(define (my-filter pred lst)
  (cond [(empty? lst) empty]
        [(pred (first lst))
         (cons (first lst) (my-filter pred (rest lst)))]
        [else (my-filter pred (rest lst)))))