4

メイン関数のシグネチャがないメインモジュールをGHCに受け入れさせる方法(フラグまたはハック)はありIO ()ますか?Fayの場合、main関数のタイプFay ()はですが、モジュールがMainの場合(またはモジュール名が省略されている場合)、GHCはこれを受け入れません。

4

1 に答える 1

10

プログラムへのエントリポイントにはIO a、いくつかの型が必要aです。私が知る限り、GHCに他の型を受け入れさせる方法はありません(ソースコードを変更せずに)。

デフォルトでは、エントリポイントはですが、 GHCのフラグをMain.main使用して、エントリポイントとしてさまざまなアクションを指定できます。-main-is一般的な形式は

ghc -main-is Module.action ModuleThatImportsEverything.hs -o programme

ModuleモジュールがMain、の場合は、その部分を省略できます。

ghc -main-is action ModuleThatImportsEverything.hs -o programme

または、actionその名前がmain、の場合はパーツ

ghc -main-is Module ModuleThatImportsEverything.hs -o programme

と同等-main-is Module.mainです。

あなたの場合、ダミーアクションをMainモジュールに追加するか、ダミーモジュール(もちろん、モジュールから直接または間接的にインポートする必要があります)をMainプログラムに追加して、GHCがエントリポイントとして機能するようにすることができます。心配している。

于 2012-11-19T19:37:55.307 に答える