Я новый интриган. Я просто хочу спросить, могу ли я включить if-statements в лямбда? Например, (lambda (x) (если e1 e2 e3)). Я не понимаю, почему нет, но моя программа просто терпит неудачу, если я напишу так.если заявление в лямбда-схеме
Большое спасибо!
Вот мой код здесь. Я пытаюсь реализовать фильтр с более высокими функциями в качестве упражнения. Поскольку @ sepp2k ответила, что вполне нормально включать ifs в лямбда, я думаю, это проблема моего использования foldr?
Если кто-то может дать некоторое представление об этом, чтобы помочь мне понять, как это работает, я бы очень признателен!
(define filter (f xs)
(if (null? xs) '()
(foldr (lambda (elem ys) ((if (f elem) (cons elem ys)
(cons '() ys)))) '() xs)))
Пожалуйста, измените текст вопроса включить неработающего кода. –