dev*_*ium 3 haskell functional-programming
让我们定义一个任意函数
someFunc a b = ...
Run Code Online (Sandbox Code Playgroud)
如果我需要它,我知道我可以做类似的事情
map (someFunc a) [b0, b1, b2, ..., bn]
Run Code Online (Sandbox Code Playgroud)
我会得到结果
[(someFunc a b0), (someFunc a b1), ..., (someFunc a bn)]
Run Code Online (Sandbox Code Playgroud)
这里没有什么新东西.但是,如果不是使用地图的第二个参数来改变b,我想改变a(一个"内部"参数)?
map (someFunc ? b) [?0, ?1, ?2, ..., ?n]
Run Code Online (Sandbox Code Playgroud)
在Haskell有什么办法可以做到这一点吗?如果没有,那么解决这个问题的方法是什么?
我知道我可能不太清楚我发布的内容.如果需要,我可以尝试重新构建我的问题:(
sep*_*p2k 11
你可以使用lambda
map (\a -> someFunc a b) ...
Run Code Online (Sandbox Code Playgroud)
或更高阶函数flip,它返回给定函数及其参数翻转:
map (flip someFunc b) ...
Run Code Online (Sandbox Code Playgroud)