私はこのエンコード機能を持っています:
class Encode a where
encode :: a -> [Bit]
また、タイプ a のリストをビットのリストにエンコードする関数の作成に問題があります。リストの要素を再帰的にエンコードしたい。私の理解では、その目的のためにマップ機能を使用できます。問題は、encode がリスト [Bit] を返すのに対し、map は Bit だけを期待することです。どうすればこれを解決できますか? これがプログラムの関連部分です。
instance Encode a => Encode [a] where
encode [] = [I, O, O, I, O, I]
encode m = ([I, O, O] ++ (map encode m) ++ [I, O, I])