Monad typeclass , return. return - , Haskell return , .
, return:
splitStringOnDelimeter :: String -> Char -> [String]
splitStringOnDelimeter "" delimeter = [""]
splitStringOnDelimeter string delimeter =
let split = splitStringOnDelimeter (tail string) delimeter in
if head string == delimeter
then ([""] ++ split)
else ( [( [(head string)] ++ (head split) )] ++ (tail split))
return :: Monad m => a -> m a ( a) . , Haskell , . , return [""] , return [""] ( ), [[""]], , , [String].
do, , .
, return , () , , , .
, , head, tail .. -: . :
splitStringOnDelimeter :: String -> Char -> [String]
splitStringOnDelimeter "" delimeter = [""]
splitStringOnDelimeter (h:t) delimeter | h == delimeter = "" : split
| otherwise = (h : sh) : st
where split@(sh:st) = splitStringOnDelimeter t delimeter
, , string h t, . , . if - then - else -, , . , where , splitStringOnDelimter t delimeter, split ( (sh:st)). , , , . , sh st head tail.
, :
Prelude> splitStringOnDelimeter "foo!bar!!qux" '!'
["foo","bar","","qux"]
, , return do, , (do - ). .