Название шаблона типа: R a b = Q (a -> (R a b, b))

Я ищу здесь словарный запас. Есть ряд форм, которые имеют общие названия. Например, L a = Пусто | Cons a L Обычно называется «списком», а T a = Leaf a | Узел (T a) (T a) является «двоичным деревом», а St s a :: St (s -> (a, s)) является формой Монады состояний.

Я хотел бы знать, есть ли у такой формы имя:

data  R a b = Q (a -> (R a b,b))

Я видел этот шаблон в структурах Arrow и реализациях State Machine. Рекурсивная функция делает его немного похожим на монаду состояния или монаду Cont. Это также единственная структура, помимо (->) и (> =>) , для которой я видел определенный экземпляр Arrow.

Есть ли общее имя для этой структуры данных?

15
задан Stanislav Kralin 19 March 2018 в 10:45
поделиться