2009-08-03 20 views
7

Estoy teniendo problemas para conseguir "hello world" con eclipseFP y Haskell.Haskell Hola mundo, eclipse IDE

tengo el siguiente código,

module Main where 
    main = putStr "Hello world!" 

y cuando compilo con

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

que trabaja muy bien, pero bajo eclipseFP, cuando lo ejecuto sólo veo lo siguiente en la consola ventana:

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> 

¿Qué errores estoy haciendo?

Respuesta

3

Por lo poco que he visto de EclipseFP, no es más que una interfaz para GHCi. Lo que significa, en lo que a mí respecta, que no hay razón para usarlo, ya que obtienes todo lo malo de Eclipse (la hinchazón, la sed sin fondo de la memoria, la velocidad de la tortuga sobre sedantes), con absolutamente nada de lo bueno (la indexación, el depurador, la gestión de su pila de herramientas).

Entonces, ¿qué error novato hiciste? Usaste Eclipse. Está bien, es un error fácil de hacer. Si estuvieras aprendiendo Scala, Eclipse podría haber sido el camino a seguir. Pero con Haskell, es mejor ejecutar GHCi desde la línea de comandos y usar un editor como Notepad ++ (que tiene resaltado de sintaxis decente). Por una vez, la combinación de línea de comandos/editor es preferible no porque sea macho, sino porque es más útil.

Si absolutamente debe tener un IDE, las selecciones son pocas en este momento, pero esto es lo que he encontrado.

Leksah
WinGHCi

Y, por supuesto, cualquier encontrarse en la respuesta a this question.

no he usado, pero Leksah parece ser el IDE más rico en funciones hasta la fecha. Personalmente, me estoy quedando con Notepad ++ y la línea de comandos.

+8

-1: No respondió la pregunta. Eclipse o no Eclipse, la solución sería la misma, como describen las otras respuestas. –

+0

@ Jørgen: Bueno, el OP pareció apreciar mi respuesta, así que tomaré su kibbitzing con un grano de sal. Pero no creo que esté fuera de lugar cuestionar la utilidad de un complemento que no puede ni siquiera ejecutar un ejecutable * cuando se lo pide *. Eclipse es el problema aquí. – rtperson

+0

Acabo de probar esto en EclipseFP. Si solicito ejecutarlo como programa Haskell, se ejecuta e imprime la cadena. Si lo ejecuto como ghci se carga en ghci. Hace lo que se espera. El problema es correr en ghci no en eclipse. –

4

Eclipse nunca utilizado, pero lo que ves es ghci, GHCi es el entorno interactivo de GHC. Su módulo se cargó con éxito en ghci, puede escribir main en ghci para ejecutar la función principal de su programa, en realidad puede llamar a cualquier función de su programa de esa manera.

12

No he usado EclipseFP en años, así que tenlo en cuenta.

Lo que parece estar sucediendo es que EclipseFP está cargando GHCi en la consola. GHCi es un shell Haskell interactivo, en el que puedes evaluar expresiones simples. También aparentemente cargó su módulo Main, por lo que puede usar GHCi para llamar a funciones en su módulo.

Si escribe :main en la consola, ejecutará su programa e imprimirá "¡Hola mundo!", También podría llamar a otras funciones que defina en su programa o funciones estándar de Haskell.

Sin embargo, lo que puede hacer es configurar EclipseFP para ejecutar su programa cuando se ejecuta, y no puedo recordar cómo hacerlo, probablemente en algún lugar del menú "Ejecutar".

+3

Creo que es "principal" sin los dos puntos – yairchu

+12

Escribir 'main' simplemente llamará a la función principal (que funcionará). Sin embargo, tecleando ': main' le permite pasar argumentos que pueden leerse con' getArgs', a menudo útil para programas de línea de comandos. –

+0

Compruebe http://stackoverflow.com/a/4427689/750216 para ver cómo ejecutar automáticamente la aplicación en el inicio. –

4

En el menú de ejecución de eclipse, seleccione configuraciones de ejecución. En la pestaña Automatización, ingrese main en el comando para ejecutar en el inicio y hará lo que usted espera.

6

En el explorador de proyectos, haga clic en su proyecto y luego haga clic con el botón derecho del mouse y seleccione Run As > Run Configurations > Run As Haskell Application.

Cuestiones relacionadas