【问题标题】:How can Scheme's Map function be used to pass two lists to a single function?如何使用 Scheme 的 Map 函数将两个列表传递给一个函数?
【发布时间】:2023-03-21 14:08:01
【问题描述】:

我有一个关于 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)

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

感谢您的所有帮助!

【问题讨论】:

    标签: list map scheme fold arity


    【解决方案1】:
    (map + lst1 lst2)
    

    MAP 可以接受任意数量的列表。

    例子:

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

    【讨论】:

    • 哎呀,我真的很傻!感谢您花时间回答。
    猜你喜欢
    • 1970-01-01
    • 2023-01-20
    • 1970-01-01
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多