您好我想創建pop和push功能哈斯克爾棧這樣定義:寫作pop和push功能疊加
data mystack = Empty | Elem Char mystack deriving Show
如果我沒有這個定義限制,我會做俯臥撐這樣
push x mystack = (x:mystack)
和流行這樣
pop mystack = head mystack
但是這個限制,我不知道該怎麼imple這些功能。 你能給我一些提示如何做這些請嗎? 我甚至無法用自己的描述寫一個Stack類型。
您絕對需要閱讀[this](http://learnyouahaskell.com/making-our-own-types-and-typeclasses#recursive-data-structures) – 2013-03-02 14:31:43
您還需要檢查您的標識符。遵循'data'關鍵字的標記應該以大寫字母開頭:'data MyStack = Empty | Elem Char MyStack派生(顯示)' – 2013-03-02 14:38:18
ps,你可能沒有意識到它,但你實際上只是重新定義了內置列表。 'MyStack'與'[Char]'(與'String'相同)只是使用不同名稱的值構造函數。 – 2013-03-02 14:39:30