例如;如何從Haskell中的String讀取遞歸數據結構?
data TRAINING=AGAIN Int [TRAINING]
|RUN
|JUMP
|PUNCH Int
deriving (Eq,Show,Read)
定義,我想的是,如果用戶輸入類似:
"RUN, PUNCH 15, AGAIN 3 [JUMP, AGAIN 2 [PUNCH 20]]"
那麼程序應該返回
[RUN,PUNCH 15,AGAIN 3 [JUMP,AGAIN 2 [PUNCH 20]]]
所以我寫了
fight :: String->[TRAINING]
fight xs=[read xs ::TRAINING]
但我得到了「沒有解析Exc主器件接收」。我是新手,我想知道什麼是「無解析異常」,我該如何解決它?
空間不會傷人,'read'可以處理那些罰款。 –
真的嗎?謝謝編輯 – jozefg
儘管我喜歡Parsec,但爲此只需手工編寫遞歸下降解析器就沒有什麼挑戰性,只是稍微乏味。 – Wes