Sud*_*ha 1 haskell higher-order-functions
现行守则
我有两个功能
f1::Int->Int->Int
f1 a b | a==1 && b==1 = 1
| otherwise = 0
Run Code Online (Sandbox Code Playgroud)
[Int]通过另一个函数将此函数应用于a
f2::[Int]->[Int]->[Int]
f2 a b = map f1 a b
Run Code Online (Sandbox Code Playgroud)
错误
Type error in application
*** Expression : map f1 c d
*** Term : map
*** Type : (e -> f) -> [e] -> [f]
*** Does not match : a -> b -> c -> d
Run Code Online (Sandbox Code Playgroud)
结论
实际上我所要求的是应用f1哪个执行Int到一个[Int]使用f2
是这个问题可以在更高阶函数中解决?或任何其他方法?...或者我如何转变f2为更高阶的功能f1?
谢谢!
如果要将该函数应用于两个列表,则需要一个不同的函数,即zipWith.
f2 a b = zipWith f1 a b
Run Code Online (Sandbox Code Playgroud)