2009-08-03 34 views
7

Tôi đang gặp khó khăn khi nhận "hello world" với eclipseFP và Haskell.Haskell Xin chào thế giới, eclipse IDE

Tôi có đoạn code sau,

module Main where 
    main = putStr "Hello world!" 

và khi tôi biên dịch nó với

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

nó hoạt động tốt, nhưng dưới eclipseFP, khi tôi chạy nó tôi chỉ nhìn thấy sau trong giao diện điều khiển cửa sổ:

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> 

Tôi đang mắc phải những sai lầm nào?

Trả lời

3

Từ những gì tôi đã thấy về EclipseFP, nó chỉ là một giao diện cho GHCi. Có nghĩa là, theo như tôi lo ngại, không có lý do gì để sử dụng nó, bởi vì bạn nhận được tất cả những điều xấu của Eclipse (bloat, cơn khát không đáy cho bộ nhớ, tốc độ rùa-on-sedatives), hoàn toàn không có tốt (việc lập chỉ mục, trình gỡ lỗi, việc quản lý ngăn xếp công cụ của bạn).

Vì vậy, bạn đã mắc phải lỗi gì? Bạn đã sử dụng Eclipse. Đó là OK - một sai lầm dễ dàng để thực hiện. Nếu bạn đang học Scala, Eclipse có thể đã là con đường để đi. Nhưng với Haskell, bạn nên chạy GHCi từ dòng lệnh và sử dụng một trình soạn thảo như Notepad ++ (có đánh dấu cú pháp tốt). Đối với một lần, sự kết hợp dòng lệnh/biên tập viên là thích hợp hơn không phải vì nó là macho, nhưng vì nó hữu ích hơn.

Nếu bạn hoàn toàn phải có một IDE, các lựa chọn rất ít ngay bây giờ, nhưng đây là những gì tôi đã tìm thấy.

Leksah
WinGHCi

Và dĩ nhiên, bất kỳ tìm thấy trong các câu trả lời cho this question.

tôi đã không sử dụng nó, nhưng Leksah có vẻ là giàu tính năng IDE nhất cho đến nay. Cá nhân, tôi gắn bó với Notepad ++ và dòng lệnh.

+8

-1: Bạn không trả lời câu hỏi. Eclipse hoặc Eclipse không, giải pháp sẽ giống nhau, như các câu trả lời khác mô tả. –

+0

@ Jørgen: Vâng, OP dường như đánh giá cao câu trả lời của tôi, vì vậy tôi sẽ đưa kibbitzing của bạn với một hạt muối. Nhưng tôi không nghĩ rằng nó không phù hợp để đặt câu hỏi về tiện ích của một plugin không thể chạy được nhiều như vậy khi nó được yêu cầu làm như vậy *. Eclipse là rất nhiều vấn đề ở đây. – rtperson

+0

Chỉ cần thử điều này trong EclipseFP. Nếu tôi yêu cầu chạy nó như là chương trình Haskell nó chạy và in chuỗi. Nếu tôi chạy nó như ghci nó tải trong ghci. Nó làm những gì được mong đợi. Vấn đề là chạy trong ghci không phải trong nhật thực. –

4

Không bao giờ sử dụng nhật thực nhưng những gì bạn thấy là ghci, GHCi là môi trường tương tác của GHC. Mô-đun của bạn đã được tải thành công trong ghci, bạn có thể nhập chính vào ghci để chạy chức năng chính của chương trình, thực tế bạn có thể gọi bất kỳ chức năng nào của chương trình theo cách đó.

12

Tôi đã không sử dụng EclipseFP trong nhiều năm, vì vậy hãy nhớ điều đó.

Điều gì dường như đang xảy ra là EclipseFP đang tải GHCi trong bảng điều khiển. GHCi là một vỏ Haskell tương tác, trong đó bạn có thể đánh giá các biểu thức đơn giản. Nó cũng dường như nạp module của bạn Main, vì vậy bạn có thể sử dụng GHCi để gọi các hàm trong module của bạn.

Nếu bạn nhập :main vào bảng điều khiển, chương trình sẽ chạy chương trình và in "Hello world!", Bạn cũng có thể gọi các hàm khác mà bạn xác định trong chương trình hoặc chức năng Haskell chuẩn. Tuy nhiên, những gì bạn có thể muốn làm là thiết lập EclipseFP để thực thi chương trình của bạn khi bạn chạy, và tôi không thể nhớ làm thế nào để làm điều đó, có lẽ ở đâu đó trong menu "Chạy".

+3

Tôi nghĩ rằng đó là "chính" không có dấu hai chấm – yairchu

+12

Nhập 'main' sẽ chỉ gọi hàm chính (sẽ hoạt động). Tuy nhiên, gõ ': main' cho phép bạn truyền các đối số có thể được đọc bằng' getArgs', thường hữu ích cho các chương trình dòng lệnh. –

+0

Kiểm tra http://stackoverflow.com/a/4427689/750216 để xem cách tự động chạy ứng dụng khi khởi chạy. –

4

Trong menu chạy nhật thực, chọn chạy cấu hình. Trong tab Automation, nhập chính vào lệnh để chạy khi khởi động và nó sẽ làm những gì bạn mong đợi.

6

Trong trình thám hiểm dự án, hãy nhấp vào dự án của bạn và sau đó nhấp vào nút chuột phải và chọn Run As > Run Configurations > Run As Haskell Application.

Các vấn đề liên quan