Haskell高阶函数问题

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

谢谢!

aug*_*tss 8

如果要将该函数应用于两个列表,则需要一个不同的函数,即zipWith.

f2 a b = zipWith f1 a b
Run Code Online (Sandbox Code Playgroud)