SplitLines.hs
import System.Environment splitLines :: String -> [String] splitLines str = let (prefix, suffix) = break isDigit str in prefix : case suffix of ('0' : rest) -> splitLines rest ('1' : rest) -> splitLines rest ('2' : rest) -> splitLines rest ('3' : rest) -> splitLines rest ('4' : rest) -> splitLines rest ('5' : rest) -> splitLines rest ('6' : rest) -> splitLines rest ('7' : rest) -> splitLines rest ('8' : rest) -> splitLines rest ('9' : rest) -> splitLines rest _ -> [] isDigit :: Char -> Bool isDigit num = (num == '0' || num == '1' || num == '2' || num == '3' || num == '4' || num == '5' || num == '6' || num == '7' || num == '8' || num == '9')
*Main> :load SplitLines.hs [1 of 1] Compiling Main ( SplitLines.hs, interpreted ) Ok, modules loaded: Main. *Main> *Main> splitLines "Hello 123 How are you 324 bcd" ["Hello ","",""," How are you ","",""," bcd"] *Main> *Main> splitLines "a1b2c3d4e5f6g7h8j9k10" ["a","b","c","d","e","f","g","h","j","k","",""]
No comments:
Post a Comment