В Common Lisp есть map
, который позволяет вам делать такие вещи:
(map (lambda (x y) (/ x y)) (list 2 4 6 8 10 12) (list 1 2 3 4 5 6))
возвращение (2 2 2 2 2 2)
Однако сейчас я работаю в ACL2, и нет такого понятия, как map
. Поэтому, на мой взгляд, единственный оставшийся у меня выбор - это выполнить рекурсию для вычисления того, что я хочу, если нет другого более простого и/или более эффективного способа сделать это.
... Это как раз мой вопрос. Есть ли лучший способ сделать это, чем создать рекурсивную функцию с именем что-то вроде divide-two-lists
? Это просто похоже на то, что язык на основе lisp должен делать естественным образом, вместо того, чтобы вам приходилось создавать другую функцию специально только для него, поэтому я и спрашиваю.