Re: [Ruby] recursive lambda
※ 引述《godfat (godfat 真常)》之銘言:
: 附帶連結版:1) http://blog.godfat.idv.tw/2007/04/ruby-recursive-lambda.html
: 2) http://lightyror.thegiive.net/2007/04/ruby-recursive-lambda.html
: [Ruby] recursive lambda
純粹使用 lambda 的方法:
fix = lambda {|f|
lambda {|x| f[lambda {|y| x[x][y]}]
}[lambda {|x| f[lambda {|y| x[x][y]}]}]
}
f = lambda {|this|
lambda {|x| x == 0 ? 1 : x*this[x-1]}
}
fact = fix[f]
fact[10]
=> 3628800
f2 = lambda {|this|
lambda {|x| x == 0 || x == 1 ? 1 : this[x-1]+this[x-2]}
}
fib = fix[f2]
(0..10).map &fib
=> [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.31.182
推
04/20 17:53, , 1F
04/20 17:53, 1F
推
04/23 02:07, , 2F
04/23 02:07, 2F
推
04/23 18:18, , 3F
04/23 18:18, 3F
討論串 (同標題文章)
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章