2009-08-03 4 views
7

Ho problemi a trovare "ciao mondo" con eclipseFP e Haskell.Haskell Hello world, eclipse IDE

ho il seguente codice,

module Main where 
    main = putStr "Hello world!" 

e quando compilo con

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

funziona benissimo, ma sotto eclipseFP, quando l'eseguo Ho solo vedere il seguente nella console finestra:

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> 

Quali errori sto facendo?

risposta

3

Da quel poco che ho visto su EclipseFP, è semplicemente un'interfaccia per GHCi. Il che significa, per quanto mi riguarda, che non c'è motivo di usarlo, dal momento che si ottiene tutto il brutto di Eclipse (il rigonfiamento, la sete senza fondo per la memoria, la velocità tartaruga sui sedativi), con assolutamente nessuno dei il buono (l'indicizzazione, il debugger, la gestione del tuo stack di strumenti).

Quindi quale errore noob hai fatto? Hai usato Eclipse. Va bene - un errore facile da fare. Se stavi imparando Scala, Eclipse avrebbe potuto essere la strada da percorrere. Ma con Haskell, è meglio far funzionare GHCi dalla riga di comando e usare un editor come Notepad ++ (che ha una discreta evidenziazione della sintassi). Per una volta, la combinazione da riga di comando/editor è preferibile non perché è macho, ma perché è più utile.

Se si deve assolutamente avere un IDE, i prelievi sono pochi in questo momento, ma ecco quello che ho trovato.

Leksah
WinGHCi

E, naturalmente, qualsiasi trovato nella risposta alla this question.

non l'ho usato, ma Leksah sembra essere il più ricco di funzionalità IDE fino ad oggi. Personalmente, sto attaccando con Notepad ++ e la riga di comando.

+8

-1: non hai risposto alla domanda. Eclipse o no Eclipse, la soluzione sarebbe la stessa, come descrivono le altre risposte. –

+0

@ Jørgen: Beh, l'OP sembrava apprezzare la mia risposta, quindi prenderò il tuo kibbitzing con un pizzico di sale. Ma non penso che sia fuori discussione mettere in discussione l'utilità di un plugin che non è in grado di eseguire un eseguibile * quando viene richiesto di farlo *. Eclipse è il vero problema qui. – rtperson

+0

Ho appena provato questo in EclipseFP. Se chiedo di eseguirlo come programma Haskell, esegue e stampa la stringa. Se lo eseguo come ghci, viene caricato in ghci. Fa ciò che ci si aspetta. Il problema è con l'esecuzione in ghci non in eclissi. –

4

Mai usato eclissi ma quello che vedi è ghci, GHCi è l'ambiente interattivo di GHC. Il tuo modulo è stato caricato con successo in ghci, puoi digitare main in ghci per eseguire la funzione principale del tuo programma, in realtà puoi chiamare qualsiasi funzione del tuo programma in quel modo.

12

Non uso EclipseFP da anni, quindi tenetelo a mente.

Quello che sembra accadere è che EclipseFP sta caricando GHCi nella console. GHCi è una shell Haskell interattiva, in cui è possibile valutare le espressioni semplici. A quanto pare ha anche caricato il modulo Main, quindi è possibile utilizzare GHCi per chiamare funzioni nel modulo.

Se si digita :main nella console, verrà eseguito il programma e stampato "Hello world!", È possibile chiamare anche altre funzioni definite nel programma o le funzioni standard di Haskell.

Tuttavia, ciò che si potrebbe voler fare è impostare EclipseFP per eseguire il programma quando si esegue, e non riesco a ricordare come farlo, probabilmente da qualche parte nel menu "Esegui".

+3

Penso che sia "principale" senza i due punti – yairchu

+12

Digitando 'main' verrà semplicemente chiamata la funzione principale (che funzionerà). Tuttavia, digitando ': main' è possibile passare argomenti che possono essere letti con' getArgs', spesso utile per i programmi di comando. –

+0

Controlla http://stackoverflow.com/a/4427689/750216 per vedere come eseguire automaticamente l'applicazione all'avvio. –

4

Nel menu di esecuzione di Eclipse, selezionare Esegui configurazioni. Sotto la scheda Automazione immettere main nel comando da eseguire all'avvio e farà ciò che ci si aspetta.

6

Nell'esploratore di progetto, fare clic sul progetto, quindi fare clic con il pulsante destro del mouse e selezionare Run As > Run Configurations > Run As Haskell Application.