0
A
回答
7
通常的原因一個需要使用一個抽象的堆棧接口,是因爲內部表示支持我們想要隱藏的操作。例如,一個可變鏈表或數組可以讓人們在堆棧中間更改元素,如果他們掌握了內部表示的話。
在Haskell中,你並不是真的有這個問題,因爲列表是單鏈接和不可變的。你可以用它做的唯一操作是用:
構造函數創建一個新列表(本質上是一個「推」操作),並對列表進行模式匹配,獲取列表元素的頭部元素和尾部(實質上是一個「彈出」操作)。所有其他列表函數都在這兩個「推入和彈出」基元之上實現。
2
有使用國家單子在LYAH建立在Haskell堆棧的一個很好的解釋:
相關問題
- 1. 瞭解Haskell的`map` - 堆棧還是堆?
- 2. 解釋ANR堆棧跟蹤
- 3. 堆棧視圖 - 解釋
- 4. Haskell遞歸堆棧溢出
- 5. 如何解釋我的堆棧跟蹤?
- 6. 實現基於堆棧的解釋器
- 7. 如何解釋轉到堆棧跟蹤
- 8. 瞭解「堆棧」
- 9. 如何解釋堆和堆棧不會彼此成長
- 10. 瞭解MEAN堆棧
- 11. Haskell堆棧解析器錯誤只是試圖運行ghci
- 12. 如何解決haskell中的「堆棧空間溢出」
- 13. Haskell堆棧的基本用法失敗
- 14. 在Haskell函數中使用堆棧
- 15. Haskell中的延期與調用堆棧
- 16. 如何避免Haskell堆棧溢出?
- 17. 在haskell中調試堆棧溢出
- 18. Haskell中的一般'無類型'堆棧
- 19. 遞歸函數haskell堆棧溢出
- 20. 解釋pprof堆圖
- 21. 幫助理解C堆棧
- 22. MEAN堆棧路由誤解
- 23. 瞭解片段堆棧
- 24. 瞭解鉻堆棧跟蹤
- 25. 解析錯誤堆棧
- 26. Viewcontroller堆棧理解問題
- 27. 瞭解堆棧跟蹤
- 28. 瞭解堆棧幀C
- 29. 應用程序堆棧跟蹤解釋MDB
- 30. javascript最大調用堆棧超出解釋
通常你只是使用一個列表? – sth 2013-03-22 16:01:37
如果你想隱藏內部表示,那麼你需要定義你想要公開的操作。 – 2013-03-22 19:46:02