2009-08-03 27 views
7

eclipseFPとHaskellで「hello world」を取得するのに問題があります。Haskell Hello world、eclipse IDE

私は次のコード、

module Main where 
    main = putStr "Hello world!" 

を持っていると私は

ghc.exe .\H1.hs -o hw.exe 

でコンパイルしたときにそれがうまく動作しますが、eclipseFPの下で、私はそれを実行したとき、私は唯一のコンソールで以下を参照してください。ウィンドウ:

GHCi, version 6.10.4: http://www.haskell.org/ghc/ :? for help 
Loading package ghc-prim ... linking ... done. 
Loading package integer ... linking ... done. 
Loading package base ... linking ... done. 
Ok, modules loaded: Main. 
Prelude Main> 

私は間違いをしていますか?

答えて

3

私はEclipseFPで少ししか見ていないが、これは単なるGHCiのインターフェースに過ぎない。つまり、私が心配している限り、それを使用する理由はない、というのは、Eclipseのすべての悪いこと(記憶のための鼓動、底なしの渇き、亀の上の鎮静薬のスピード)を得るからです。良い(インデックス作成、デバッガ、ツールスタックの管理)。

あなたはどんなことを間違えましたか?あなたはEclipseを使いました。それはOKです - 簡単な間違いです。 Scalaを学んでいたら、Eclipseが動いているかもしれません。しかし、Haskellでは、コマンドラインからGHCiを実行し、Notepad ++のようなエディタを使用する方がよい(まともな構文強調がある)。コマンドラインとエディタの組み合わせは、machoだからではなく、もっと便利なので、一度であることが望ましい。

IDEを絶対に持っている必要がある場合、ピッキングは今のところほとんどありませんが、ここに私が見つけたものがあります。

Leksah
WinGHCi

そしてもちろん、this question.

への答えで見つかった私はそれを使用していないが、Leksahは、これまでで最も機能豊富なIDEであるように思われます。個人的には、私はメモ帳++とコマンドラインを固執しています。

+8

-1:あなたは質問に答えなかった。 EclipseまたはEclipseがない場合、解決策は同じで、他の回答と同じです。 –

+0

@Jørgen:OPは私の答えに感謝していたので、私はあなたのキッビングを塩の穀物で取るでしょう。しかし、私はそれがそうするように頼まれたときに実行可能ファイル*を実行するほどのことができないプラグインのユーティリティに疑問を呈するのは、それがラインから外れているとは思わない*。 Eclipseは非常に大きな問題です。 – rtperson

+0

EclipseFPでこれを試してみました。私がHaskellプログラムとして実行するように頼むと、それは実行され、文字列を出力します。私がghciとして実行すると、ghciにロードされます。それは期待されることをします。問題は日食ではなくghciで実行することです。 –

4

Eclipseを使用したことはありませんが、表示される内容はghciです.GHCiはGHCの対話型環境です。あなたのモジュールはghciで正常にロードされました。ghciにmainを入力してプログラムのmain関数を実行することができます。実際にはプログラムの任意の関数をそのように呼び出すことができます。

12

私は何年も前からEclipseFPを使用していませんでしたので、そのことを念頭に置いてください。

EclipseFPがコンソールでGHCiをロードしているように見えます。 GHCiはインタラクティブなHaskellシェルで、簡単な式を評価することができます。モジュールMainもロードされているので、GHCiを使用してモジュール内の関数を呼び出すことができます。

:mainをコンソールに入力すると、プログラムが実行され、 "Hello world!"が表示されます。プログラムまたは標準のHaskell関数で定義した他の関数を呼び出すこともできます。

しかし実行するときにプログラムを実行するようにEclipseFPを設定すると、実行方法を覚えていない可能性があります。「実行」メニューのどこかにあります。

+3

私はそれがコロンなしで "メイン"だと思います。 – yairchu

+12

'main'とタイプすると、main関数が呼び出されます。しかし、 ':main'と打つことで、' getArgs'で読むことができる引数を渡すことができます。 –

+0

起動時にアプリケーションを自動的に実行する方法については、http://stackoverflow.com/a/4427689/750216を参照してください。 –

4

eclipse実行メニューで、実行構成を選択します。 [自動化]タブの下で、コマンドを実行するためにコマンドにmainと入力すると、期待通りの結果が得られます。

6

プロジェクトエクスプローラでプロジェクトをクリックし、右クリックしてRun As > Run Configurations > Run As Haskell Applicationを選択します。