我要實現一個顯示實例與類型哈斯克爾:顯示與類型,如:: *數據 - > *
這裏一個數據類型的問題是代碼:
data RMcom = LOAD Int | STORE Int | CLOAD Integer | CADD Integer |
CSUB Integer | CMULT Integer | CDIV Integer | ADD Int |
SUB Int | MULT Int | DIV Int | GOTO Integer | JZERO Integer |
END deriving (Eq, Show, Read)
type RMprog = Integer -> RMcom
type Register = Int -> Integer
data RMstate = State {progr :: RMprog, pc :: Integer, reg :: Register, maxReg :: Int}
其仿真對於Registermachine
所以現在我想爲我自己製作一個Show RMstate實例。
Normaly我會做這樣的
instance Show RMstate where
show(State progr pc reg maxReg) = show(progr)++show(pc)++show(reg)++show(maxReg)
但是編譯器要對顯示RMprog和註冊一個實例,但我怎麼 可以爲一個類型的實例?
預先感謝
任何可能得到它的工作,無需額外進口,只是在節目的功能? –
是的,您可以爲'Show(a - > b)'編寫自己的實例。 – augustss