map2は、ls1とls2の2つのリストと、関数Fを受け取り、ls1とls2の最短値と同じ長さのリストを返します。このリストでは、i番目の要素はls1とls2のi番目の要素にFを適用した結果です。 (この順序で)
module Map2 where
map2 lst1 lst2 f = map2_iter lst1 lst2 f len 0 []
where len = (min (length lst1), (length lst2))
map2_iter (x:lst1) (y:lst2) f len i acc = if (i == len)
then acc
else let res = (f x y) in
map2_iter (lst1) (lst2) (f) (len) (i+1) ((res):acc)
map2_iter [] [] f len i acc = []
次のエラーが発生しました
Map2.hs:3:20:
No instances for (Eq (Int -> Int), Num (Int -> Int, Int))
arising from a use of `map2_iter'
Possible fix:
add instance declarations for
(Eq (Int -> Int), Num (Int -> Int, Int))
In the expression: map2_iter lst1 lst2 f len 0 []
In an equation for `map2':
map2 lst1 lst2 f
= map2_iter lst1 lst2 f len 0 []
where
len = (min (length lst1), (length lst2))
このエラーが何を意味するのかよくわかりません。誰か助けてもらえますか?
また、これはハードウェアではなく、テストの準備です。