Hello Ketil, Monday, May 21, 2007, 12:43:16 PM, you wrote:
isSpace :: Char ->> Bool > isSpace = isSp . ord > isSp c | c <= 13 = c >= 8 -- \b..\r > | c <= 127 = c == 32 -- ' ' > | c <= 255 = c == 0xa0 -- nbsp > | otherwise = iswspace(..) that's great but array-based test should be even faster: > isSp c | c <= 255 = spaceArray!c /= 0 > | otherwise = iswspace(..) spaceArray :: UArray Int Word8 moreover, we can do the same trick as done in C libraries - pack several boolean tests into one Word8. but probably, direct use of isspace will be even better: > isSp c | c <= 255 = isspace c > | otherwise = iswspace(..) > foreign unsafe import isspace ... > foreign unsafe import iswspace ... moreover, if we know platforms where iswpace checks the whole range, we can speed up code on these platforms by omitting isspace check -- Best regards, Bulat mailto:[EMAIL PROTECTED] _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users