如何使用Scheme的Map函数将两个列表传递给单个函数?

时间:2011-11-02 06:09:01

标签: list map scheme fold arity

我对Scheme有疑问。我对这门语言比较陌生,我的问题相当笼统:

在没有定义递归函数的情况下,是否可以使用Map(或类似的东西)将两个参数列表提供给函数,从输出中生成一个新列表?

例如,假设我有:

(define lst1 (list 1 2 3 4 5))
(define lst2 (list 2 4 6 8 10))

我想以某种方式映射+函数,将每个列表作为参数提供,输出将是一个新列表,lst3:

>lst3
(3 6 9 12 15)

更简洁地陈述问题:当两个参数都是列表时,一个最有效如何映射二进制函数?

感谢您的帮助!

1 个答案:

答案 0 :(得分:6)

(map + lst1 lst2)

MAP可以使用任意数量的列表。

示例:

(map + lst1 lst2 lst1) => (4 8 12 16 20)