私はHaskellに興味のある初心者で、フラットマップ(>> =)を自分で実装して理解を深めようとしています。現在私は持っています
flatmap :: (t -> a) -> [t] -> [a]
flatmap _ [] = []
flatmap f (x:xs) = f x : flatmap f xs
これは「マップ」部分を実装しますが、「フラット」は実装しません。
私が行った変更のほとんどは、がっかりし、かなり情報がないという結果になります
Occurs check: cannot construct the infinite type: a = [a]
When generalising the type(s) for `flatmap'
エラー。
私は何が欠けていますか?