RosettaCodeData/Task/Variadic-function/JavaScript/variadic-function-3.js

30 lines
442 B
JavaScript

let
fix = // Variant of the applicative order Y combinator
f => (f => f(f))(g => f((...a) => g(g)(...a))),
forAll =
f =>
fix(
z => (a,...b) => (
(a === void 0)
||(f(a), z(...b)))),
printAll = forAll(print);
printAll(0,1,2,3,4,5);
printAll(6,7,8);
(f => a => f(...a))(printAll)([9,10,11,12,13,14]);
// 0
// 1
// 2
// 3
// 4
// 5
// 6
// 7
// 8
// 9
// 10
// 11
// 12
// 13
// 14