我正在尝试编写一个从Haskell中的字符串读取的函数,如果该字符串具有数字,则应返回True。这是我目前所拥有的
hasNumber :: String -> Bool
hasNumber n = any number
我已经在第二行中尝试了很多功能,但似乎没有用,有人可以帮我吗?谢谢!
假设您要检查字符串是否为自然数,可以归结为
import Data.Char (isDigit)
hasNumber :: String -> Bool
hasNumber = all isDigit
如果您不想使用Data.Char
(或者这是一项作业,则不被允许),则可以使用
isDigit = (`elem` ['0'..'9'])
如果要检查数字是否为整数,则必须检查字符串是否以“-”开头,如果是,则检查字符串的其余部分是否为自然数:
isIntegral :: String -> Bool
isIntegral ('-':[]) = False -- string is "-", which isn't a number
isIntegral ('-':xs) = hasNumber xs -- string is "-....", so we check "...."
isIntegral x = hasNumber x -- string doesn't start with '-'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句