仅将一个参数传递给 map 而不是 Scheme 中的两个

Passing only one parameter to map instead of two in Scheme

我在方案 (extract-disjunct word nodes) 中有一个函数接受两个参数:wordnodes

我有一句话:"This is a test sentence"。对于这句话中的每个单词,我想应用上面给定的函数。

这可以通过简单的地图操作来完成。

然而,要注意的是: 第二个参数 nodes 本身是一个嵌套列表,对于给定的句子,参数保持不变,即对于我打算应用 map 的单词列表,它保持不变。不会变的。

我想像这样应用地图: (map extract-disjunct word nodes)

但是,我收到一个错误。有什么解决办法吗?我可以在地图中保留一个参数吗?

只需定义另一个函数,该函数接受 word 参数并将其和常量 nodes 参数传递给 extract-disjunct。使用 currying,您可以使此工作适用于任何常量 nodes:

(define ((curried-extract-disjunct nodes) word) (extract-disjunct word nodes))

(map (curried-extract-disjunct nodes) words)