2009-08-03 52 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的所有壞處(膨脹,對記憶的無盡渴望,對鎮靜劑的依賴速度),絕對沒有好的(索引,調試器,工具堆棧的管理)。

那你做了什麼noob錯誤?你使用Eclipse。沒關係 - 一個容易犯的錯誤。如果你正在學習Scala,那麼Eclipse可能就是要走的路。但是對於Haskell,你最好從命令行運行GHCi並使用像Notepad ++這樣的編輯器(它具有不錯的語法高亮)。有一次,命令行/編輯器組合最好不是因爲它是男子氣概,而是因爲它更有用。

如果你絕對必須有一個IDE,現在的選擇很少,但這是我找到的。

Leksah
WinGHCi

和當然,在回答任何發現this question.

我還沒有使用它,但Leksah似乎是功能最豐富的IDE日期。就個人而言,我堅持使用Notepad ++和命令行。

4

從未使用eclipse,但看到的是ghci,GHCi是GHC的交互式環境。你的模塊已經成功加載到ghci中,你可以在ghci中輸入main來運行程序的main函數,實際上你可以用這種方式調用你的程序的任何函數。

12

我多年沒有使用過EclipseFP,所以請記住。

似乎正在發生的事情是EclipseFP正在控制檯中加載GHCi。 GHCi是一個交互式的Haskell shell,您可以在其中評估簡單表達式。它也顯然加載了你的模塊Main,所以你可以使用GHCi來調用模塊中的函數。

如果您在控制檯中鍵入:main,它將運行程序並打印「Hello world!」,您還可以調用您在程序中定義的其他函數或標準Haskell函數。

但是,您可能想要做的是設置EclipseFP在運行時執行您的程序,但我不記得如何做到這一點,可能在「運行」菜單中的某處。

+3

我認爲這是沒有冒號的「主」 – yairchu 2009-08-03 06:48:37

+12

輸入`main`只會調用主函數(這將起作用)。然而,輸入`:main`可以讓你傳遞可以用`getArgs`讀取的參數,這對命令行程序通常是有用的。 – 2009-08-03 07:10:51

4

在eclipse運行菜單中,選擇運行配置。在「自動化」選項卡下,在命令中輸入main以在啓動時運行,它將按照您的期望執行操作。

6

在項目資源管理器中單擊您的項目,然後單擊鼠標右鍵並選擇Run As > Run Configurations > Run As Haskell Application