【发布时间】:2017-02-28 08:01:30
【问题描述】:
我正在尝试使用 Racket 构建过滤器(内置函数),只是作为一种实践。
我创建了以下代码:
(define (filter lista-1 check-function)
(define (fil-iter lista-1 check-function lista-2)
(cond ((null? lista-1) lista-2)
((check-function (car lista-1)) (fil-iter (cdr lista-1) check-function (append lista-2 (list (car lista-1)))))
(else (fil-iter (cdr lista-1) check-function lista-2))))
(trace fil-iter)
(fil-iter lista-1 check-function '()))
我用“奇数?”、“偶数?”做了一些测试。和“号码?”作为“检查功能”。
所有输出都是正确的。但我可能什么都没看到……我的直觉说这里有问题。
【问题讨论】:
标签: filter functional-programming lisp racket sicp