Почему эта простая программа для анализа текста работает так медленно?

Вот мой код для подсчета строк и слов:

import System.IO
import Data.List
main = do
        hSetBinaryMode stdin True
        interact $ (\(w,l)->"line:"++(show l)++"\nwords:"++(show w)++"\n")
                   . foldl' (\(w,l) r-> w `seq` l `seq` (w+length r ,succ l) ) (0,0)
                   . lines

Это занимает около 10 секунд для запуска файла размером около 100 мегабайт Я сравнил его с аналогичными программами на Lua (9 с), awk (20 с) и wc -l -c(0,6 с).

Почему этот код такой медленный? В чем может быть проблема?

8
задан dave4420 2 April 2012 в 14:57
поделиться