1

私のコードは次のとおりです。

factorial :: Integer -> Integer
factorial n = product [1..n]

main = print(factorial 50)

コンパイル時にエラーは発生しませんが、コンパイルされたコードを実行すると

runhaskell test

次のエラーが表示されます。

test:1:1: lexical error at character '\DEL'

これは何が原因ですか?問題を解決するにはどうすればよいですか?

アップデート

ファイルの 16 進ダンプを実行しました。

$ 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
4

1 に答える 1

8

コンパイル済みのバイナリではなく、ソースファイルを使用runhaskellしていることを確認してください。test.hstest

実行可能ファイルを作成するようなものを使用した場合はghc、次のようなもので直接実行できます。

./test

一部のシェルの組み込みコマンドであるため、実行可能ファイルの名前としてはおそらく適切ではないことに注意してください。これは、実行可能ファイルが私が望んでいたことをしていないように見えるtestときに以前に私を燃やしたものです:-)test

于 2014-12-11T04:19:04.847 に答える