Skip to content

Instantly share code, notes, and snippets.

@kjagiello
Created March 5, 2013 20:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kjagiello/5093964 to your computer and use it in GitHub Desktop.
Save kjagiello/5093964 to your computer and use it in GitHub Desktop.
fun superExplode (delimiter, s) =
let
fun takeUntil (delimiter, []) = []
| takeUntil (delimiter, first::rest) =
if first = delimiter then
[]
else
first::(takeUntil (delimiter, rest))
fun superExplode' (delimiter, []) = []
| superExplode' (delimiter, l) =
let
val part = (takeUntil (delimiter, l))
in
(implode part)::(superExplode' (delimiter, List.drop (l, length part + 1)) handle Subscript => [])
end
in
superExplode' (delimiter, explode s)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment