Make this faster by using recursion rather than splitting the string into codepoints and using reduce.
Up version to 0.1.0