dop*_*man 1 haskell ghc runhaskell
继承我的代码:
factorial :: Integer -> Integer
factorial n = product [1..n]
main = print(factorial 50)
Run Code Online (Sandbox Code Playgroud)
我没有编译任何错误,但是当我运行编译的代码时
runhaskell test
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
test:1:1: lexical error at character '\DEL'
Run Code Online (Sandbox Code Playgroud)
是什么造成的?我该如何解决这个问题?
更新
我做了一个文件的hexdump:
$ hexdump -x test.hs
Run Code Online (Sandbox Code Playgroud)
得到了
0000000 6166 7463 726f 6169 206c 3a3a 4920 746e
0000010 6765 7265 2d20 203e 6e49 6574 6567 0a72
0000020 6166 7463 726f 6169 206c 206e 203d 7270
0000030 646f 6375 2074 315b 2e2e 5d6e 6d0a 6961
0000040 206e 203d 7270 6e69 2874 6166 7463 726f
0000050 6169 206c 3035 0029
0000057
Run Code Online (Sandbox Code Playgroud)
确保您使用runhaskell的是源文件test.hs而不是编译的二进制文件test.
如果你曾经使用类似的东西ghc创建一个可执行文件,你可以直接运行它,例如:
./test
Run Code Online (Sandbox Code Playgroud)
请注意,test对于可执行文件来说,这可能不是一个好名字,因为它是某些shell上的内置命令,当我的test可执行文件似乎没有按照我想要的方式执行时,它会让我感到烦恼:-)