RosettaCodeData/Task/Y-combinator/Sidef/y-combinator.sidef

8 lines
245 B
Text
Raw Permalink Normal View History

2017-09-23 10:01:46 +02:00
var y = ->(f) {->(g) {g(g)}(->(g) { f(->(*args) {g(g)(args...)})})}
2016-12-05 23:44:36 +01:00
2017-09-23 10:01:46 +02:00
var fac = ->(f) { ->(n) { n < 2 ? 1 : (n * f(n-1)) } }
say 10.of { |i| y(fac)(i) }
2016-12-05 23:44:36 +01:00
2017-09-23 10:01:46 +02:00
var fib = ->(f) { ->(n) { n < 2 ? n : (f(n-2) + f(n-1)) } }
say 10.of { |i| y(fib)(i) }