Неуверенный в том, как создать полезную библиотеку с использованием комбинаторов

Я читал о комбинаторах и видел, насколько они полезны (например, в 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

Действительно ли это комбинаторы? Имеют ли смысл комбинаторы / есть ли другие очевидные комбинаторы, которые мне не хватает?

Спасибо за любой совет.

8
задан acfoltzer 16 August 2011 в 19:07
поделиться