6️⃣

[Haskell] zipwithを実装する

2024/01/26に公開

すごいHaskellたのしく学ぼう!を読んでいるので、アウトプットします。

あくまで初学者のアウトプットなので、あまりイケてない記述があるかもしれません。

第5章で関数を実装する問題があるので、自分なりの回答を載せます。

zipwith

zipwithは、関数と二つのリストを引数にとり、2つの各要素にその関数を適用する関数です。

本の回答・自分の回答

zipWith' :: (t1 -> t2 -> a) -> [t1] -> [t2] -> [a]
zipWith' _ [] _ = []
zipWith' _ _ [] = []
zipWith' fn (x : xs) (y : ys) = fn x y : zipWith' fn xs ys

再帰の考え方を使えば簡単に実装できますね。

Discussion