与内置的 toLower 函数混淆

Did*_*ova 1 haskell functional-programming visual-studio-code

我在 Mac 上使用 VSCode 作为 Haskell 的 IDE。

\n

这个简单的功能

\n
toLowerSt :: String -> String\ntoLowerSt = map toLower\n
Run Code Online (Sandbox Code Playgroud)\n

返回以下错误:

\n
Main.hs:92:17: error:\n    \xe2\x80\xa2 Variable not in scope: toLower :: Char -> Char\n    \xe2\x80\xa2 Perhaps you meant \xe2\x80\x98toLowerSt\xe2\x80\x99 (line 92)\n   |\n92 | toLowerSt = map toLower\n   |                 ^^^^^^^\nFailed, no modules loaded.\n
Run Code Online (Sandbox Code Playgroud)\n

我很难理解这里的实际问题是什么。字符串被映射到字符,但它向我抛出了这个错误。

\n

Wil*_*sem 5

toLower :: Char -> Char函数是在Data.Char模块中定义的,并且不会由 重新导出Prelude,因此您需要使用以下命令导入它:

import Data.Char(toLower)

toLowerSt :: String -> String
toLowerSt = map toLower
Run Code Online (Sandbox Code Playgroud)