继承我的代码:
factorial :: Integer -> Integer
factorial n = product [1..n]
main = print(factorial 50)
我没有编译任何错误,但是当我运行已编译的代码时
runhaskell test
我收到此错误:
test:1:1: lexical error at character '\DEL'
造成这种情况的原因是什么?我该如何解决这个问题?
更新
我做了一个文件的hexdump:
$ hexdump -x test.hs
得到了
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
答案 0 :(得分:8)
确保您将runhaskell
与源文件test.hs
一起使用,而不是使用已编译的二进制文件test
。
如果您使用ghc
之类的东西来创建可执行文件,您可以直接运行它,例如:
./test
请注意,test
可能不是可执行文件的好名称,因为它是某些shell上的内置命令,当我的test
可执行文件似乎没有做之前就会让我感到烦恼我想要的是: - )