Я читал о комбинаторах и видел, насколько они полезны (например, в Parsec Haskell). Моя проблема в том, что я не совсем уверен, как их использовать на практике.
Вот краткое изложение проблемы: распределения можно генерировать, фильтровать и изменять. Распределения можно комбинировать для создания новых.
Основные интерфейсы (в терминологии псевдо-Haskell):
generator:: parameters -> distribution
selector:: parameters -> (distribution -> distribution)
modifier:: parameters -> (distribution -> distribution)
Теперь я думаю, что вижу три комбинатора:
combine:: generator -> generator -> generator
filter:: generator -> selector -> generator
modify:: generator -> modifier -> generator
Действительно ли это комбинаторы? Имеют ли смысл комбинаторы / есть ли другие очевидные комбинаторы, которые мне не хватает?
Спасибо за любой совет.