1

現在のコード

私は2つの機能を持っています

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

この関数を[Int]別の関数でに適用する

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

結論

実際に私が必要としたのは、を使用するために実行するものを適用することですf1。 この問題は高階関数で解決できますか?または他の方法?...または、どのようにして高階関数に変換できますか?Int[Int]f2f2f1

ありがとう!

4

1 に答える 1

8

関数を2つのリストに適用する場合は、別の関数、つまりzipWithが必要です。

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