我正在寫一個小標記器程序來分別標識每個字符串輸入。然而,當我測試它與多個數字號碼說「256」它給了我一個[數字2,數字5,數字6]這是不是我所期望的字符串標記。驗證Haskell中的多位數整數
import Data.Char
data Token = Number Integer
deriving (Show, Eq)
tokenize :: String -> [Token]
tokenize (c:cs)
| isDigit c = Number (read [c]) : tokenize cs
| otherwise = error
如何讓isDigit
以大於9的整數工作? (具有2首或更多個數字)
你寫它的方式不會編譯 - isDigit和tokenize是一樣的嗎?你能給我們你的工作代碼嗎? – Carsten
除了我的評論,一個簡單的'tokenize s = [Number $ read s]'將完成這部分的工作(如果你期望'tokenize「256」= [Number 256]' – Carsten
我剛剛編輯了代碼。我必須擺脫'tokenize cs'部分 – Walle