我不知道如何在 Haskell 中使用 newtype 狀態:所以我嘗試創建一個具有兩種狀態的堆疊:活動和非活動,當堆疊處于活動狀態時,您可以對其進行操作,當它處于非活動狀態時,可以執行任何操作堆疊被自動忽略。我嘗試像這樣實作它:
newtype State a = myState [a]
data myState = Active | Inactive
其中 State a 是一個 myState,其中包含一個型別為 a 的專案串列。但這似乎不是定義這個的正確方法?它給了我以下錯誤:
Not a data constructor: ‘myState’
我將如何正確實施?
uj5u.com熱心網友回復:
資料建構式和型別建構式的名稱不能以小寫字母開頭,您可以定義一個:
data State a = State MyState [a]
data MyState = Active | Inactive
uj5u.com熱心網友回復:
你會想要使用
data Stack a = Stack StackState [a]
data StackState = Active | Inactive
或者
data Stack a = ActiveStack [a] | InactiveStack [a]
Stack//是型別值的建構式ActiveStack。它們的名稱以及型別名稱必須大寫。InactiveStackStack a
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/517157.html
標籤:哈斯克尔
下一篇:在AST中包含注釋
