1樓:parker liu
@皓雪 的解答沒有說清楚fold的泛性質(universal property),這裡的fold 就是foldr。具有如下的泛性質:k
=v<===>k=
foldfv
k(x:
xs)=f
x(kxs
)fold函式從List這個遞迴資料型別reduce得到乙個值,而List則是F-alg的不動點,這裡F-alg的函子F a 的定義如下:
dataFa
x=()|
Prodax
我們來看F a 函子的不動點,假設這個不動點是FixF,將FixF 代入到x 中,我們有
data
FixF=()
|Prod
aFixF
在Haskell中,() 和 都是無引數型別,可以看成是Hask範疇中的物件,和Hask 範疇中的終極物件1 是同構的。因此() 和 也是同構的,另外我們把Prod 改為中綴操作符(:)。
於是就有了如下的 F-alg的不動點,也就是haskell的列表型別[a] 的定義:
data[a
]=|a:[a]
根據Lambek 引理,F-Alg 的不動點就是F-Alg 範疇的初始物件,也就是說F-Alg 的任意乙個承載物件x (這是型別變數)都存在唯一的乙個函式(態射)k,從列表型別[a] 得到承載型別x。這個k 也就是fold f v,這就是fold的泛性質(universal property),如下所示(重複一遍上面的泛性質的定義)。k
=v<===>k=
foldfv
k(x:
xs)=f
x(kxs
)我們取F-Alg 的另乙個承載物件y ,其有如下的唯一函式k1 從列表型別[a] 得到承載型別y。k1
=w<===>k1=
foldgw
k1(x:
xs)=g
x(k1xs
)設型別y 到型別x 存在函式h,根據範疇論中態射的組合性質,有如下的等式存在:h.
k1=kh
.foldgw
=foldfv
根據fold的泛性質的定義,有如下的等式推導:
h (k1 ) = k
<=>h w = v
h (k1 (x:xs) = k (x:xs)
<=>h (g x (k1 xs)) = f x (k xs)
<=>h (g x (k1 xs)) = f x (h (k1 xs))
<=>h (g x y) = f x (h y)
於是我們就得到了函式h 的定義,描述了f、g、h之間的關係。也就有了如下的fold的fusion property。hw
=v<===>h.
foldgw
=foldfv
h(gx
y)=f
x(hy
)以上。
請問應該怎樣理解這部佛經?
沉變 於是阿逸菩薩長跪叉手。前白佛言 寧有一事。菩薩摩訶薩於此事中具大乘願。住不退轉。疾成無上正真道不。佛言有。阿逸。北方有世界名曰豐嚴。其國有佛。號德內豐嚴王如來 至真 等正覺 明行成為 善逝 世間解 無上士 道法御 天人師。號曰眾祐。度人無量。其有得聞斯佛名者。歡喜信樂。持諷誦念而為作禮。其人皆...
鋼之煉金術中的門和真理應該怎樣理解
宋人心中如湯煮 如果放到現實世界,大概是諸如牛頓三定律,大一統公式之類的終極真理,能夠從最基本理解這個世界的知識,並且包括一切推論,描述一切現象的所有公式。如果是鋼鍊的世界,大概是能夠煉成一切,也能夠破壞一切的知識,一切物質組織的方式與全宇宙的能量流動,能夠從最本質把握和理解煉金術。相當於掌握了修改...
怎樣理解佛教中的空?
茂陽昜 佛家的空和道家的無極其實是一回事。無極出自道德經中知其白,守其黑,為天下式。為天下式,常德不忒,復歸於無極。黑白就是陰陽,陰陽就是收斂與發散。由收斂自然而然彰顯出發散的模式就是無極。單純的白色,代表黑色遵守其收斂的本性而完全收斂不顯現了。凡事都有兩面性,當一面完全消失了,另一面也就不復存在了...