В общем наткнулся я на ссылку http://www.haskell.org/haskellwiki/Dynamic_programming_example
Решается там такая задача: есть упаковки монет по 6, 9 и 20. Количество упаковок не ограничено. Вопрос заключается в том, можно ли из этих упоковок получить ровно n монет?
Все вроде бы хорошо и красиво, но представленные по ссылке реализации работают ~100 раз медленнее Си. Сравнима производительность лишь последнего варианта, но не к каждой задаче применим такой подход.
Вопрос: как быть? =) Возможно ли эффективное динамическое программирование в Хаскель?