Итак, я пытаюсь создать функцию, в которой задан следующий ввод '((a (xz) (c)) (b (wy) (d)))
Я должен сделать что-то вроде этого '((a (xz)) (a (c)) (b (wy)) (b (d)))
Я пытался написать это
(define productionValues
(lambda (input)
(let ((lhs (map (lambda (x) (car x)) input)))
(let ((rhs (map (lambda (y) (cdr y)) input)))
(map (lambda (l) (cons l (map (lambda (r) (car r)) rhs))) lhs)
)
)
))
Это не работает и заставляет меня ((a (xz) (c)) (b (xz) (c)))
Моя логика заключается в том, что у меня есть переменная lhs , которая хранит (a b)
и rhs , которая хранит (((xz) (c)) ((wy) (d)))
, и я попытался бы использоватьдругой набор картографических функций для извлечения между двумя переменными, но я чувствую, что нахожусь на некотором правильном пути, но просто не понимаю, как я мог получить желаемый результат.