Комментарии 5
0
Глядя на описание функции и на получившийся тип (t1 -> t -> t1) -> (t -> t) -> t -> t1, невольно приходит на ум, что это ближе к свёртке (fold) по сути, чем к Y-комбинатору:
То же самое, только с другим порядком аргументов.
yfold f t x = foldr f undefined (iterate t x)
fac n = yfold (\i prev -> if i == 0 then 1 else prev * i) (\i -> i - 1) n
То же самое, только с другим порядком аргументов.
0
наверное штука интересная, просто первые делоам — Y-комбинатор на ум приходит как комбинатор стартап-ов.
А как практически применятся «ваш» математический y-комбинатор?
А как практически применятся «ваш» математический y-комбинатор?
0
Ну, поскольку он неподвижная точка, он может поддерживать некое слабомутирующее окружение — экспертную систему, например. Ведь иногда параметры придется менять, а вид структуры остается.
Номер два. Описав универсальный Ы-комбинатор, можно делать объявления вида
fac N = Y (\next -> \data -> next * data) N
которые, согласитесть, короче, чем обычные объявления.
Номер два. Описав универсальный Ы-комбинатор, можно делать объявления вида
fac N = Y (\next -> \data -> next * data) N
которые, согласитесть, короче, чем обычные объявления.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Y-комбинатор, упрощение интерфейса