0

私はHaskellの初心者なので、これをできるだけ明確に説明しようとします。次のコードを使用して非常に単純なプログラムを作成しました。

module Main where
main = interact (unlines . map reverse . lines)

これを実行してmain+enter と入力し、単語や文などを入力すると、元に戻ります。ここで、.txt ファイルを渡す必要があります。しかし、私はそうすることができません。私が取り組んでいる課題シートは、次のように説明しています。

プログラムをコンパイルし (インタープリターから実行すると正しく動作しません!)、標準入力をリダイレクトしてファイル in.txt から読み取るようにしながら、プログラムを実行します。Windows マシンでは、次のコマンドを使用してこれを実現できます。

Main < in.txt

Mac および Linux マシンでは、次のコマンドを使用する必要があります。

./Main < in.txt

これは私にはうまくいかないようです。入力するとMain < derp.txt、エラーが発生します

<interactive>:3:1: Not in scope: data constructor 'Main'
<interactive>:3:8: Not in scope: 'derp'
<interactive>:3:13: Not in scope: 'txt'

私は何を間違っていますか?私は全くの初心者なので、この質問はばかげているかもしれないことに注意してください。

4

4 に答える 4

3

runhaskell.exe を使用することもできます。

runhaskell Main.hs <derp.txt

Windowsでは問題なく動作します。また、ファイルを省略module Main whereして好きな名前を付けることができます。名前は必須ではありません。.hsMain.hs

于 2013-09-11T21:14:03.083 に答える