仅将一个参数传递给 map 而不是 Scheme 中的两个
Passing only one parameter to map instead of two in Scheme
我在方案 (extract-disjunct word nodes)
中有一个函数接受两个参数:word
和 nodes
。
我有一句话:"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)
我在方案 (extract-disjunct word nodes)
中有一个函数接受两个参数:word
和 nodes
。
我有一句话:"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)