Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Haskell中使用toUpper和toLower而不导入module Data.Char?_Haskell_Toupper_Tolower_Haskell Prelude - Fatal编程技术网

如何在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