这是我的咖喱功能:
(define (curry g)
(lambda(x)
(lambda(y)
(g x y))))
我正在尝试使用curry函数生成不等于1的数字列表。
到目前为止,我有:
(define filter-numbers ((curry filter)
((curry equal?) 1)))
但它只会产生等于1的数字列表。
例如(过滤器编号(列表1 2 3))->(列表1)
我想得到(清单2 3),但不知道如何。有人可以帮忙吗?
最佳答案
尝试一下-使用内置的curry
和filter-not
过程,这是Racket中正确的方法:
(define filter-numbers
(curry filter-not (curry equal? 1)))
或者,使用您的
curry
实现:(define filter-numbers
((curry filter-not)
((curry equal?) 1)))
无论哪种方式,它都能按预期工作:
(filter-numbers '(1 2 3 4 5 1 7 1))
=> '(2 3 4 5 7)
关于scheme - 通过数字列表过滤,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33869174/