Я новичок в Схеме и пытаюсь разобраться в моей домашней работе.У меня есть функция, которую я сделал ранее, под названием duplicate , и она выглядит следующим образом:
( DEFINE ( duplicate lis )
(IF (NULL? lis) '())
((CONS (CAR lis) (CONS (CAR lis) (duplicate (CDR lis))))
))
Типичным вводом-выводом будет i: (duplicate '(1 2 3)4)) o: (1 1 2 2 3 3 4 4), поэтому в основном он дублирует все в списке.Двигаясь дальше: теперь я должен создать функцию, которая называется comp .Он должен быть построен следующим образом:
(DEFINE (comp f g) (lambda (x) (f (g (x))))
Где я мог бы ввести '(1 2 3 4), и он вернется (1 1 4 4 9 9 16 16)
, поэтому f= дубликаты и g = лямбда .Я знаю, лямбда , вероятно, должна выглядеть так:
(lambda (x) (* x x))
Но вот здесь начинается проблема, я уже потратил на это несколько часов, и, как вы видите, не достиг большого прогресса.
Любая помощь будет оценена.С наилучшими пожеланиями.