Поиграем в слова: создаём бота-игрока на языке Haskell

В числе самых верхнеуровневых требований выдвинем следующие:
- Программа должна быть исполнена в виде консольного приложения с диалоговым режимом.
- Вместе с тем она должна быть в меру дружественна к пользователю.
- Программа должна позволять играть в слова на различные темы, а список тем формируется игроком в процессе использования.
- Программа должна обучаться в процессе игры, подразумевая, что игрок — человек, обладающий полным знанием естественного языка (сильное предположение, но это лучше, чем ничего :).
- Программа должна иметь несколько стратегий игры — от самой лёгкой до довольно сложной; также должна быть возможность смены стратегии в процессе игры на основании каких-либо критериев.
Вот с этим багажом и начнём. В описании, как всегда, воспоследуем принципам модульности и разработки сверху вниз.
Ознакомиться с полным описанием