Здравствуйте, az1976, Вы писали:
А>>работает 2 минуты 13 секунд. неужели это слишком долго?
A>Как?
A>У меня ghc 6.10.4, Core2Duo 3GHz.
A>Пробовал запускать из ghci.
A>Пробовал компилировать с ключом -O и запускать exe-файл.
A>Распишите, пожалуйста, по шагам, как для чайника, как получено такое время?
У меня вот это решение:
prb cndExp = length $ filter isOk cnds
where
cnds = makeDgts2 cndExp
problem = prb 8
main = print problem
Отрабатывает за 47 секунд. Сишная программа — за 32. Вот только память оно ест как не в себя, максимальное потребление около 1,5 ГБ. Список-то вычисляется лениво, но, насколько я понимаю, GC не может сразу подбирать обработанные узлы. Жаль, vacuum-cairo мне завести так и не удалось, визуализировать получающуюся структуру в уме сложно.
GHC 6.12.1, GCC 4.3.3, Linux x86-64, Phenom II X3 @2.6 ГГц