1

当前代码

我有两个功能

f1::Int->Int->Int
f1 a b | a==1 &&  b==1 = 1
       | otherwise = 0

[Int]通过另一个函数将此函数应用于 a

f2::[Int]->[Int]->[Int]
f2 a b = map f1 a b

错误

Type error in application
*** Expression     : map f1 c d
*** Term           : map
*** Type           : (e -> f) -> [e] -> [f]
*** Does not match : a -> b -> c -> d

结论

实际上我需要的是应用f1which perform to a Intto a [Int]usingf2 这个问题可以在高阶函数中解决吗?或任何其他方法?...或者我怎样才能转换f2为更高阶的函数f1

谢谢!

4

1 回答 1

8

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

f2 a b = zipWith f1 a b
于 2011-06-10T07:57:36.767 回答