Я пытаюсь создать фильтр (встроенную функцию) с помощью Racket как раз на практике.Построение встроенной функции фильтра с помощью 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 '()))
Я сделал несколько тестов с «даже?» и "номер?" как «контрольная функция».
Все выходы были правильными. Но я, возможно, ничего не вижу ... Моя интуиция говорит, что здесь что-то не так.
Вы - мой профессор! Спасибо, еще одно замечательное объяснение! –
Добро пожаловать! – Renzo
Я избегал обратного ... Есть ли другой способ использовать минусы вместо добавления и не использовать обратное? –