
8 Jun
2010
8 Jun
'10
11:08 a.m.
What's an elegant definition of a Haskell function that takes two strings and returns "Nothing" in case the first string isn't a substring of the first, or "Just i", where i is the index number of the position within the first string where the second string begins?
my quick take, with Maybe and fmap : substringP :: String -> String -> Maybe Int substringP _ [] = Nothing substringP sub str = case isPrefixOf sub str of False -> fmap (+1) $ substringP sub (tail str) True -> Just 0 -- Paul