Re: [Ruby] recursive lambda
※ 引述《godfat (godfat 真常)》之銘言:
: 不過套上一層間接呼叫之後,就可以正常使用了:
: Y = lambda{|f|
: lambda{|x| lazy{f[x[x]]} }[lambda{|x| lazy{f[x[x]]} }]
: }
嗯,這樣也蠻漂亮的~
: 那 Yk = (L L L L L L L L L L L L L L L L L L L L L L L L L L) 真讓人傻眼!
: 我真想懷疑這是用程式跑出來的結果 O_o
哈哈... 你漏了 L 的定義:
Yk = (L L L L L L L L L L L L L L L L L L L L L L L L L L)
L = \a b c d e f g h i j k l m n o p q s t u v w x y z r .
(r (t h i s i s a f i x e d p o i n t c o m b i n a t o r))
(以上用比較簡單的語法,
\ 是 lambda, a b c ... 是 lambda 的參數, application 只用空格隔開)
有個 combinator 專家和我解釋過,重點在那個 r. 在 L 的參數之中 r
被偷偷提到最後面,同時他是 combinato"r" 的最後一個字母。其他都是
裝飾而已。不過細節我就忘了... 誰要來解說嗎? :)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.192.157.71
推
04/24 20:53, , 1F
04/24 20:53, 1F
→
04/24 20:53, , 2F
04/24 20:53, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 6 之 8 篇):
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章