Мне нужна помощь при выполнении рекурсии в схеме, используя только функции абстрактного списка. В качестве примера, как бы я изменить этот код с явной рекурсии так, что она не будет иметь имя функции в организме:неявная рекурсия по схеме
(define (make_unique_list lst)
(cond
[(empty? lst) empty]
[(member? (first lst) (rest lst)) (make_unique_list (rest lst))]
[else (cons (first lst) (make_unique_list (rest lst)))]))
Спасибо!
«не явная» т.е. неявная рекурсия обычно означает сгиб. Рекурсия через ** Y ** все еще рекурсия, там все еще есть вызов функции, например. 'Y (λ fact.λ n.n <2? 1; n * fact (n-1))'. Хотя анонимный, это все еще рекурсия. :) –
@WillNess Your're right - Возможно, я неверно истолковал вопрос. Тем не менее, используя Y-гребень. вы явно не используете какую-либо функцию * name *, о которой упоминалось в вопросе. –
Мы используем 'fact' ... это просто, что функция' fact' создается на месте для нас, Y. Не какая-то глобальная функция; еще функция. :) –