如何创建小写检查器?

时间:2016-07-01 16:03:47

标签: haskell

我无法理解这种递归是如何工作的,例如,如果我想进行String -> Boolean练习以了解字符串是否包含小写,我该怎么办呢?这是我的大业余代码,甚至没有正确运行列表,虽然我不知道更好:

lowercase (x:xs) | isLower x lowercase xs = True
                 | otherwise = False

2 个答案:

答案 0 :(得分:2)

你有一个好主意,但语法不好。

lowercase :: String -> Bool
lowercase [] = True -- this case is needed to ensure that recursion stops
lowercase (x:xs) | isLower x = lowercase xs
lowercase _ = False

或者,使用标准库,

lowercase = all isLower

答案 1 :(得分:0)

怎么样:

lowercase (x:xs) = if isLower x
                     then lowercase xs
                     else False

但是你还需要覆盖空字符串:

lowercase [] = ???

另请注意,无需显式测试布尔值是等于True还是False。即而不是if boolexpr == True ...只需使用if boolexpr ...