如何在不导入模块 Data.Char 的情况下在 Haskell 中使用 toUpper 和 toLower?

How to use toUpper and toLower in Haskell without importing module Data.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'' 匹配小写字符而不是大写字符。 (ToUpper'' 有效)。固定:

toLower'' :: [Char]-> [Char]
toLower'' [] = []
toLower'' (x : xs)
  | x `elem` ['A' .. 'Z'] = toEnum (fromEnum x + 32) : toLower'' xs
  | otherwise = x : toLower'' xs