我正在尝试学习 Haskell,因此我按照https://docs.haskellstack.org/en/stable/install_and_upgrade/上的说明安装了 Haskell Stack 工具。现在我正在尝试使用列表,并在 ghci 编译器上编写了一个简单的 map 函数
myMap f [] = []
myMap f (x:xs) = (f x):myMap f xs
然后我尝试用平方函数测试它,但出了点问题
square x = x^2
myMap square [1,2,3]
[1,4,9*** Exception: <interactive>:2:1-33: Non-exhaustive patterns in function myMap
我试图用解释器执行这段代码,所以我创建了一个包含 myMap 和 square 函数定义的 .hs 文件,然后用命令加载
:l file_name.hs
现在同样的测试成功了。为什么会这样?编译有什么问题?我想也许我没有正确安装它,但我找不到可能出了什么问题..有人可以帮我吗?