Лексическая ошибка в символе '\DEL' при выполнении runhaskell
Вот мой код:
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
1 ответ
Решение
Убедитесь, что вы используете runhaskell
с исходным файлом test.hs
а не скомпилированный двоичный файл test
,
Если вы использовали что-то вроде ghc
чтобы создать исполняемый файл, вы можете просто запустить его напрямую, например:
./test
Быть в курсе, что test
это, вероятно, не очень хорошее имя для исполняемого файла, так как это встроенная команда в некоторых оболочках, то, что сжигало меня раньше, когда мой test
исполняемый файл, кажется, не делает то, что я хотел:-)