我有以下程序抛出运行时异常:
import System.IO
main :: IO ()
main = do
handle <- openFile "palindrome.txt" ReadMode
input <- hGetContents handle
hClose handle
它会进行类型检查,但每当我尝试运行main
时,我都会收到错误:
我做错了什么?
答案 0 :(得分:3)
您当前的程序使用相对路径。因此,该文件必须位于启动GHCi的同一目录中。鉴于您的工作区为$HOME/Desktop/Haskell
,它可能仅检查$HOME/Desktop/Haskell/palindrome.txt
。如果要在$ HOME / Desktop / Haskell / u03 / 3-1 /`中使用palindrome.txt
,则需要在代码中使用绝对路径,或者在该目录中运行GHCi。
请注意,您可以使用:cd
更改GHCi中的当前目录,因此GHCi中的以下命令应该有效:
Prelude> :cd /path/to/your/directory
Prelude> :l palindrom-a.hs
*Main> :main