?

Log in

Фикспоинт на ЖСе - Дважды мудак [entries|archive|friends|userinfo]
Декларативное рулит

Site Meter

[ website | Мой сайт ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Фикспоинт на ЖСе [мар. 9, 2017|13:50 pm]
Andy Melnikov
[Tags|, , ]

сonst fix = f => x => f(x1 => fix(f)(x1))(x)
sumInt = n => { 
    const sum = f => x => acc => x == 0 ? acc : f(x-1)(x+acc)
    return fix(sum)(n)(0)
}
СсылкаОтветить

Comments:
[User Picture]From: juan_gandhi
2017-03-09 08:14 pm
ой блин. Вот это да. Действительно ж. Половина игрека.

fix = λf λx f(λy (fix f) y) x

Ну понятно.
(Ответить) (Thread)
[User Picture]From: nponeccop
2017-03-10 04:03 am
Я получил эта-экспансией const fix = f => f(fix(f)), который не работает в call by value
(Ответить) (Parent) (Thread)
From: (Anonymous)
2017-03-10 03:07 pm
const Y = h => (f => f(f))(f => h(n => f(f)(n)));
const factorial = Y(g => n => n < 2 ? 1 : n * g(n - 1));
(Ответить) (Thread)
[User Picture]From: nponeccop
2017-03-10 04:21 pm
длиннее! (но, конечно, нерекурсивно)
(Ответить) (Parent) (Thread)