これは少し長いので、我慢してください!
uni プロジェクトの一部として使用しなければならない Haskell プログラムの操作に少し問題があります。参考までに、それはCasperです。
したがって、スクリプトを実行することになっています。これは、実際には次のように Hugs インタープリターを呼び出す Bash スクリプトです。
exec $HUGSBIN/hugs $HUGSARGS +p"Casper> " $FILES
$FILES は Main.lhs ファイルを指します。
この後、インタープリターでファイルへのパスを指定して「コンパイル」関数を呼び出す必要があります。
上記をスクリプトで実行する必要があります。バックグラウンドでCasperを呼び出すプログラムを書いているので、これを自動化する必要があります。
そこで、.lhs ファイルをコンパイルしました。「コンパイル」機能を実行したいのですが、これがどのように行われるのかわかりません。私は試します:
./Main compile <a path>
コマンドラインからですが、ファイル「テスト」が見つからないというエラーが返されます。調査すると、Main.lhs ファイルに次の行が表示されます。
>main :: String -> IO()
>main = compile "test"
>compile :: String -> IO()
>compile s = catch (compile0 False s) handler
[...snipped]
2行目はこの質問を解決します。私の質問は、「コンパイル」関数を呼び出して、main.lhs をコンパイルした後にパスを渡すにはどうすればよいかということです。インタープリターから「compile」と入力するだけで動作しますが、main.lhs をコンパイルしてコマンド ラインから実行した後、同じように動作しませんか? 理由はありますか?他のすべてが失敗した場合、ハグをスクリプト化する方法はありますか?
ご協力ありがとうございます。