(初学者)在Haskell中使用保护来确定输入字符是否为数字



如何使用Haskell中的保护来确定输入字符是否为数字?这就是我的想法,

test :: (Eq a, Num a) => a -> Bool
test a
| elem a [1, 2, 3, 4, 5, 6, 7, 8, 9]  = True
| otherwise = False

然而,当给定Char时,它返回:";错误:变量不在作用域中:a";。我如何修改它,使其也将字符作为输入?提前感谢

然而,当给定Char时,它返回:"error: Variable not in scope: a

如果使用Char,则需要使用test 'a',而不是test a。然而,将不起作用。事实上,类型签名是:

test :: (Eq a,Num a) =>a-> Bool

因此,它适用于数字类型。对于Char,您需要使用:

test :: Char -> Bool
test = a `elem` …

在我把填写部分作为练习的地方,这应该是Char的可折叠部分,例如String

最新更新