分割機能の欠落に関する他のスレッドを見たことがありますが、学習目的でこれを行っており、自分自身を理解したいので、覗きたくありませんでした。だからここにあります:
split :: Char -> String -> [String]
split c xs | null f = []
| otherwise = f : split c s'
where (f,s) = break (== c) xs
s' | null s = s
| otherwise = tail s
正常に動作しているようですが (何か問題がある場合は教えてください)、文字列に含まれていない分割文字を使用すると、関数は元の文字列の単一要素を含むリストを返しますが、空のリスト。私はそれを行う方法を理解できません。
何か案は?。