如何在Haskell中使用toUpper和toLower而不导入module Data.Char?
因此,我试图在没有导入帮助的情况下编写自己的函数,并且我正在努力实现一个以相同方式工作的函数 这是我的如何在Haskell中使用toUpper和toLower而不导入module Data.Char?,haskell,toupper,tolower,haskell-prelude,Haskell,Toupper,Tolower,Haskell Prelude,因此,我试图在没有导入帮助的情况下编写自己的函数,并且我正在努力实现一个以相同方式工作的函数 这是我的 toLower'' :: [Char]-> [Char] toLower'' [] = [] toLower'' (x : xs) | x `elem` ['a' .. 'z'] = toEnum (fromEnum x + 32) : toLower'' xs | otherwise = x : toLower'' xs toUpper'' :: [Char] -> [
toLower'' :: [Char]-> [Char]
toLower'' [] = []
toLower'' (x : xs)
| x `elem` ['a' .. 'z'] = toEnum (fromEnum x + 32) : toLower'' xs
| otherwise = x : toLower'' xs
toUpper'' :: [Char] -> [Char]
toUpper'' [] = []
toUpper'' (x : xs)
| x `elem` ['a' .. 'z'] = toEnum (fromEnum x - 32) : toUpper'' xs
| otherwise = x : toUpper'' xs
toLower'
正在匹配小写字符而不是大写字符。(touper'
works)。固定的:
您可以使用
x>='a'&&x来代替x`elem`['a'..'z']
toLower'' :: [Char]-> [Char]
toLower'' [] = []
toLower'' (x : xs)
| x `elem` ['A' .. 'Z'] = toEnum (fromEnum x + 32) : toLower'' xs
| otherwise = x : toLower'' xs