Я новичок в схеме. Я использовал такие программы, используя letrec и binding, используя lambda.Может ли локальная процедура быть связана с переменной в letrec без использования лямбда?
(define (drop l n)
(letrec ((iter (lambda(ls x)
(cond ((null? ls) ls)
((> x 1) (cons (car ls) (iter (cdr ls) (- x 1))))
(else (iter (cdr ls) n)))))) (iter l n)))
(define factorial
(lambda (n)
(letrec ((iter
(lambda (product counter)
(if (> counter n)
product
(iter (* counter product)
(+ counter 1))))))
(iter 1 1)))
Но недавно я обнаружил, что оценочные органы в нашем колледже не позволяют использовать конструкцию «лямбда». В любом случае, подобные проблемы могут быть выполнены без использования лямбда? Пожалуйста, предложите любые другие альтернативы.
Вы можете использовать внутренний 'define', который позволяет определить функцию без использования слова' lambda'. –