Hacker Newsnew | comments | ask | jobs | submitlogin
Why are these simple Haskell text processing programs so much faster than in C? (jaguarpaw.co.uk)
7 points by tome 536 days ago | comments


qznc 536 days ago | link

Because they do not have to worry about locale. For a fair comparison the Haskell programs must be rewritten with a different toUpper function:

http://hackage.haskell.org/packages/archive/text-icu/0.6.3.5...

See also: http://stackoverflow.com/questions/12537377/in-haskell-how-c...

-----

splinterofchaos 536 days ago | link

Because they don't do the same thing. The Haskell code tests if that last char was a space and returns b or toupper(b). The C code checks if the current char is an alpha, then checks if word is set. That's a two branch algorithm. What mystifies me is why the C programmer didn't use the Haskell coder's algorithm, which is much more obvious. In my own tests, if you modify the C program to use the one-branch algorithm (just maintain a char called "last" instead of the bool "word"), the two run at the same speed.

-----

tome 536 days ago | link

Also submitted to Haskell Reddit:

http://www.reddit.com/r/haskell/comments/128j84/why_are_thes...

-----




Lists | RSS | Bookmarklet | Guidelines | FAQ | DMCA | News News | Feature Requests | Bugs | Y Combinator | Apply | Library

Search: