関数で文字列のパターン マッチングを行いたいのですが、文字列を部分文字列に分割するのに問題があります。のような文字列と取得したい"ccaabbccaacc"
正規表現、壊れた部分文字列を含むリストが必要です。部分文字列のすべての部分を返すこの関数を作成しました"a*b*c*"
["cc", "aabbcc", "aacc", ""]
parts :: [a] -> [[[a]]]
parts [ ] = [[ ]]
parts [c] = [[[c]]]
parts (c : cs) = concat [[(c : p) : ps ,[c] : p : ps] | p : ps <- parts cs]
しかし、すべての結果に対して一致関数を適用すると、必要なものが返され、結果をフィルタリングする方法がわかりません。誰かが私を助けることができますか?