[hasekll] 在非交互模式用 Char.isLower 失败
我在看 yaht, 下面是其中一个习题
Exercise 3.3 Use map to convert a string into a list of booleans, each element in the
new list representing whether or not the original element was a lower-case character.
That is, it should take the string “aBCde” and return [True,False,False,True,True].
我在 ghci 环境中,可以用
- map Char.isLower "foo"
复制代码但写在源文件里再编译就会失败。下面是我的代码
- module Main
- where
- main = do
- x<-getLine
- putStrLn $ show $ map Char.isLower x
复制代码编译时报告如下错误
3.3.hs:6:25: Not in scope: `Char.isLower'
如果先 import Char,则上面的代码可以通过,而且把 map Char.isLower 替换成 map isLower 也没问题。为啥会这样呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
GHCi 虽然自动 import Char,但不知为什么直接 isLower 不行,要写成 Char.isLower. 而用非交互的方式时,import Char 后可以直接用 isLower.
因为在 GHCi 中,会自动 import Char。