Лексическая ошибка в символе '\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 исполняемый файл, кажется, не делает то, что я хотел:-)

Другие вопросы по тегам