Я пытаюсь написать код с использованием SCHEME, который принимает два аргумента, например '(2 1 3) &' (a b c) и дает список '(b a c). Мой код не работает ни рекурсивным, ни итеративным. Любая помощь!!Переупорядочить элементы в списке с помощью схемы
(define project
(lambda (list1 list2 list3 n b index)
(define n (length(list1)))
(let ((i n))
(for-each (i)
(cond
((null? list1) (display "empty"))
(else
(define n (car list1))
(define index (- n 1))
(define b (list-ref list2 index))
(define list3 (cons list3 b))
(define list1 (cdr list1))
list3))))))
Это улучшило бы читаемость кода, который вы опубликовали, если он был правильно отступом. Все основные среды разработки Схемы имеют функциональность, которая делает это автоматически. –
Я скопировал отложенный код несколько раз, но все хуже. PS не удалось загрузить снимок. :/ – farey
Gah есть промежутки здесь тоже D: D: – jozefg