在Haskell中,如何将包含字符串类型的单个字符转换为Char?

p1tboqfb  于 2023-01-09  发布在  其他
关注(0)|答案(1)|浏览(131)

我是Haskell的新手。我有一个包含单个字符的字符串,例如"A""3"。我想将其转换为字符,以使用isDigit :: Char -> Bool函数检查它是否为数字。我如何将字符串转换为字符?
我试过:

isDigit head x
-- and
isDigit take 1 x

巫婆给我错误:Variable not in scope: isDigit :: ([a0] -> a0) -> String -> BoolVariable not in scope: isDigit :: (Int -> [a0] -> [a0]) -> t0 -> String -> Bool

pgvzfuti

pgvzfuti1#

函数isDigit是在Data.Char中定义的,所以你需要导入那个模块。另外,正如注解中提到的,表达式isDigit head x将尝试用两个参数headx调用isDigit。你需要计算head x并将那个参数传递给isDigit。所以你需要写isDigit (head x)。下面的程序应该可以工作:

import Data.Char

string1 = "A"
string2 = "3"

main = do
  print $ isDigit (head string1)
  print $ isDigit (head string2)

或者,如果您尝试在GHCi中交互式地对此进行评估,请用途:

ghci> import Data.Char
ghci> isDigit (head "A")
False
ghci> isDigit (head "3")
True

相关问题