2011-05-19 83 views
1

我記得一個網頁,描述了一些有趣的技術與某些功能編程任務。問題是我不記得它是什麼。類型系統代數 - 使用派生

它以二叉樹節點(Tree left, Tree right, Data d)爲例,可以將其描述爲Tree*Tree*DataTree^2*Data。那麼當例如通過Tree得出時,我們得到2*Tree*Data

你能指點一下這是用來做什麼的嗎?

+0

模糊的問題我知道,但我所記得的是得出這個表達式 – ron 2011-05-19 15:56:48

回答

3

聽起來像是Zipper

要跟進:這類事情的口頭禪是「一種類型的衍生物是它的一個單一的上下文」。這個想法是,如果你想用一個點來表示一個二叉樹,並且你想插入一個二叉樹,那麼數據結構恰好是從樹的根到樹根的路徑,並且在每個節點上升你必須記住你是來自左邊還是右邊,以及那個節點的數據以及你不是來自哪個子樹。那麼這正是2(又名左/右)*數據*樹的元組。