Если я хочу использовать карту в двух списках, lst1
и lst2
, и я хочу применить что-то к каждому элементу lst2, используя каждый элемент lst1, как бы я это сделал?Что касается карты в схеме
Например, если я хочу, чтобы создать список, где (first lst1)
прилагается к (first lst2)... (last lst2)
, а затем (second lst2)
добавляется к (first lst2) ... (last lst2)
. Как мне это сделать?
Я пробовал использовать карты в двух списках.
(define (... lst1 lst2)
(map (lambda (x y)
(if (empty? lst1) empty (cons x (list y))))
lst1 lst2))
Когда даны списки (list 1 2 3)
и (list 'a 'b 'c)
, я получаю (list 1 'a (list 2 'b) (list 3 'c))
. Как мне изменить его так, чтобы я получил (list 1 'a (list 1 'b)...
Спасибо!
Редактировать: извините за запутанную формулировку. Это то, что я хочу, учитывая список (list 1 2)
и (list 'a 'b 'c)
:
(list 1 'a (list 1 'b) (list 1 'c) (list 2 'a) (list 2 'b) (list 2 'c))
Можете ли вы более четко объяснить, что хотите? Похоже, вам может понадобиться декартово произведение, а не отображение. Если 'lst1' is' (list 1 2) 'и' lst2' is '(list 'a' b)', что вы хотите получить? – svk
@svk Ваша интуиция оказалась правильной, похоже, на основе обновления OP. –
Вы уверены, что не хотите '(список (список 1 'a) (список 1' b) ...)' –