1
スプリット機能の欠落に関する他のスレッドを見てきましたが、学習目的でこれを行い、自分自身を把握したいと思っていませんでした。 (何もそれと間違っているなら、私に教えてください)ハスケル:文字列分割。
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
正常に動作するようですが、私は、文字列ではありません分割文字を使用する場合、関数は、単一のリストを返す:だからここにあります元の文字列の要素を返しますが、空のリストを返すようにします。私はそれを行う方法を理解することはできません。
アイデア?
+1。元の関数の主要部分は、 'break(== c)>>> second(split c。drop 1)>>> uncurry(:)'として書くこともできますが、 'xs 'は空です。 – Vitus
非常に良い例です。新しいことを学ぶのはうれしいです。ありがとうございました。 –