Я пытаюсь изменить список на схеме с помощью DrRacket.Схема обратного списка
Код:
(define rev
(lambda(l)
(if (null? l)
'()
(append (rev (cdr l)) (list (car l))))))
Если я вход (rev '(a((b)(c d)(((e))))))
, выход (((b) (c d) (((e)))) a)
.
Я хочу, чтобы это было (((((e)))(d c)(b))a)
. Я смотрел здесь: How to Reverse a List?, но я получаю еще худший результат. Что я делаю не так? Любая помощь будет оценена!
Большое спасибо! Никогда не знал о командах 'let',' loop' и 'acc'. ** РЕДАКТИРОВАТЬ **: Не могли бы вы узнать эквиваленты этих команд с помощью 'lambda'? Профессор не мог позволить мне использовать «цикл» или «acc». Если нет, все в порядке. –
Ничего! Я посмотрел, как работает, и это имеет смысл. Еще раз спасибо! –