Haskell读取无解析器错误
我有这行代码,但有一些问题Haskell读取无解析器错误,haskell,Haskell,我有这行代码,但有一些问题 type PhonePad = [(Int,String)] dayPad = [(1,"Monday"), (2,"Tuesday")] -- I don't list out all of them data PhoneDay = Monday | Tuesday deriving (Eq, Ord,Show,Read,Bounded) testtt :: PhonePad -> Int -> String testtt p d = snd $
type PhonePad = [(Int,String)]
dayPad = [(1,"Monday"), (2,"Tuesday")] -- I don't list out all of them
data PhoneDay = Monday | Tuesday
deriving (Eq, Ord,Show,Read,Bounded)
testtt :: PhonePad -> Int -> String
testtt p d = snd $ (filter (\x -> fst x == d) p)!!0
我想显示号码的电话簿类型。说testtt dayPad 2==“星期二”
我想在星期二得到:
read $ testtt dayPad 2 :: PhonePad
但它总是返回一个错误消息:
*** Exception: Prelude.read: no parse
有人知道这里出了什么问题吗?星期二
不是电话板
,而是电话日
。试图将字符串“星期二”
作为类型PhonePad=[(Int,string)]
读取会导致错误,因为它的格式不像Int
s和string
s的元组列表
Prelude> (read $ testtt dayPad 2) :: PhonePad
*** Exception: Prelude.read: no parse
(testtt dayPad 2==“星期二”
)
如果您改为尝试将字符串作为PhoneDay
来读取,它会工作
Prelude> (read $ testtt dayPad 2) :: PhoneDay
Tuesday
星期二
不是电话本
,而是电话日
。试图将字符串“星期二”
作为类型PhonePad=[(Int,string)]
读取会导致错误,因为它的格式不像Int
s和string
s的元组列表
Prelude> (read $ testtt dayPad 2) :: PhonePad
*** Exception: Prelude.read: no parse
(testtt dayPad 2==“星期二”
)
如果您改为尝试将字符串作为PhoneDay
来读取,它会工作
Prelude> (read $ testtt dayPad 2) :: PhoneDay
Tuesday
您真的需要电话板中的字符串吗?typephonepad=[(Int,PhoneDay)]
就足够了吗?你真的需要PhonePad中的字符串吗?键入PhonePad=[(Int,PhoneDay)]
就足够了吗?