作者CindyLinz (Cindy Wang)
看板PLT
標題Re: [問題] Free Monad 是怎麼來的?
時間Wed Oct 30 21:27:45 2013
※ 引述《xcycl (XOO)》之銘言:
: --
:
※ 發信站: 批踢踢實業坊(ptt.cc)
: ◆ From: 78.151.174.221
: ※ 編輯: xcycl 來自: 78.151.174.221 (10/30 09:26)
: 推 CindyLinz:我覺得這個結構看起來跟 church number 有點像說 ^^ 10/30 20:24
: → CindyLinz:church number 作加法時就是把 succ 丟進去; 乘法是把 10/30 20:24
: → CindyLinz:add 丟進去.. 10/30 20:25
: → suhorng:喔~ 好像一個要從 X0 取? 10/30 20:43
: → suhorng:@1F church number 那邊不太懂 QQ 10/30 20:43
參考這邊..
http://en.wikipedia.org/wiki/Church_encoding
Church 在只有函數的 lambda calculus 裡面定義
0 為 \f \x -> x
1 為 \f \x -> f x
2 為 \f \x -> f (f x)
3 為 \f \x -> f (f (f x))
...
我覺得這邊的 f, 有像 free monad 裡面留個位置把 functor 丟進去的 fu~
succ = \n \f \x -> f (n f x) 用來把 n 變成 n+1
就是把 f x 丟給 n 以後, 再在它外面套一層 f
plus (wiki 上的) = \m \n \f \x -> m f (n f x)
不過我推文的時候心中想的是
plus = \m \n \f \x -> (m succ n) f x
or
plus = \m \n -> m succ n
(你看你最愛的 pointless 來了... XD)
就覺得這個套 N 層 f.. 有點那個味道,
哎唷~ 我也不知道怎麼講清楚啦 orz
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 112.121.80.249
1F:推 suhorng:喔喔喔~~XDDD 10/30 21:38
2F:→ suhorng:a -> a, 有點 open recursion 的味道 XD? 10/30 21:39