В настоящее время пытается написать функцию фильтра, которая принимает список процедур и список номеров, удаляет процедуры, которые не возвращают true для каждого элемента списка чисел.запись фильтр функция используя foldr?
Что я сделал, это следующее, в настоящее время выполняется одна процедура и проходит через список, чтобы создать список, указывающий, истинна или ложна процедура для каждого элемента.
Использование foldr или карту, если это необходимо (не рекурсивный)
(define (my-filter ps xs)
(foldr (λ (x y)
(cons (ps x) y)) '() xs))
Как удалить процедуру, если она имеет по крайней мере одного #F?
т.е. в настоящее время
> (my-filter even? '(1 2 3 4))
(#f #t #f #t)
> (my-filter even? (2 4))
(#t #t)
хотят
> (my-filter (list even?) '(1 2 3 4))
(list)
> (my-filter (list even?) '(2 4))
(list even?)
думаю:> (мой фильтр (список даже?) '(1 2 3 4)), должен возвращать: (список), typo – Chase
Имеет ли значение, что вместо 'foldl' используется' foldr'? – naomik
Я думаю, что это нормально – Chase