Domanda

brutta notizia di questa mattina, ero disposto a cercare di utilizzare Leksah (bell'aspetto applicazione tra l'altro) per continuare l'apprendimento Haskell.

ho potuto compilare l'esempio "Ciao Mondo" ho trovato leggendo il leksah esercitazione .

module Main (
main = putStrLn "Hello World"     
) where

compilation-error: src\Main.hs:16:5: parse error on input = ' `

e

module Main (
) where
main = putStrLn "Hello World"

compilation-error: src\Main.hs:1:0: The main functionmain' non viene esportato dal modulo Main'

Che cosa mi consiglia di provare qualcosa di diverso?

EDIT IMPORTANTE : Ora Leksah viene fornito con un file Main.hs, caricato direttamente la prima volta che si avvia leksah, che contiene un progetto completamente functionnal Ciao Mondo mini. Ha anche unità minimalista contatore di test parte. Ottimo per i principianti : -)

È stato utile?

Soluzione

Il testo nel paranthesis dopo il nome del modulo è una lista di esportazione. Questo significa che bisogna mettere tutte le funzioni del programma che si desidera esportare in là. Ma oltre a questo, si hanno anche per definire la funzione da qualche parte principale. Prova questo:

module Main (
  main
) where
main = putStrLn "Hello World"

PS:. Si può anche rimuovere il paranthesis e tutto lì dentro, di qualsiasi cosa al vostro modulo sta per essere esportato

Altri suggerimenti

Il secondo esempio è quasi lì, basta rimuovere il () dal lato Main. Questa è la vostra lista di esportazione per il modulo, che hai fatto vuota (nulla in-tra le parentesi). A causa di ciò, main non si vede (perché non è esportato).

Si potrebbe anche solo esportare principale:

module Main (main) where

"E 'buona pratica per tutto l'esportazione?" Sicuramente non. Se non si desidera che i dettagli di implementazione come metodi di supporto perdite verso l'esterno. Un altro esempio sono i costruttori di valore, perché non c'è modo di avere controlli di integrità, gli argomenti di default ecc per loro. Per ovviare a questo, di usarli solo all'interno del modulo, e fornire utili funzioni di inizializzazione e sicuri per l'esterno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top