Хорошо, это мой 4-й вопрос сегодня о Схеме, все еще довольно новый для Схемы, так как мне нужно было для одной из моих подфункций Я спрашивал ранее в тот же день.
В основном это вернет мне разницу в 2 списка. Скажем, у вас есть (1,5) и (5,1), эта функция должна вернуть мне 8. Так как это расстояние между l и w
Вот что у меня есть. Примечание: если я изменю (list (- (car l) (car w))) на (write ..... ), функция будет работать, но выводит 2 числа, которые я понятия не имею, как использовать эти числа в качестве входных данных. другой моей функции.
Поэтому я пытаюсь поместить его в список, но на самом деле не получается, он возвращает меня без ошибок, но со странными вещами.
(define (difference l w) ; calc heuristic function estimation
(if (> (car l) (car w))
(list (- (car l) (car w)))
(if (< (car l) (car w))
(list (- (car w) (car l)))))
(if (< (list-ref l 1) (list-ref w 1))
(list (- (list-ref l 1) (list-ref w 1)))
(if (> (list-ref l 1) (list-ref w 1))
(list (- (list-ref w 1) (list-ref l 1)))))
)
Вот код вернул мне
> (difference '(9 1) '(3 1))
#<procedure:...0\assigment 2.ss:50:3>
Любые идеи? попробуйте использовать лямбда в конечном итоге то же самое.