2013-03-22 96 views
0

我在哪裏可以找到Haskell堆棧的一個很好的解釋。目前我所知道的是:Haskell堆棧解釋

  • 傳統的抽象數據類型完全隱藏數據

  • 的內部 表示可以實現使用列表中的多態性堆棧瞞着 消費者關於它的內部運作。

+2

通常你只是使用一個列表? – sth 2013-03-22 16:01:37

+0

如果你想隱藏內部表示,那麼你需要定義你想要公開的操作。 – 2013-03-22 19:46:02

回答

7

通常的原因一個需要使用一個抽象的堆棧接口,是因爲內部表示支持我們想要隱藏的操作。例如,一個可變鏈表或數組可以讓人們在堆棧中間更改元素,如果他們掌握了內部表示的話。

在Haskell中,你並不是真的有這個問題,因爲列表是單鏈接和不可變的。你可以用它做的唯一操作是用:構造函數創建一個新列表(本質上是一個「推」操作),並對列表進行模式匹配,獲取列表元素的頭部元素和尾部(實質上是一個「彈出」操作)。所有其他列表函數都在這兩個「推入和彈出」基元之上實現。