Domanda

di nuovo una domanda totale newbie da me su Haskell, e Leskah.

(In primo luogo, un complimento soggettivo per gli amanti Haskell: ad ogni tornare per una sessione di apprendimento di Haskell mi piace sempre di più spero che questo andrà avanti per lungo :-).. Ultime piacere è stato lo zucchero di Leskah per i simboli auto trasformando in matematica. Rende gli sguardi di codice davvero bello. Ma bene che non è questo il punto ...)

Ho voluto organizzare il mio pacchetto di lingua straniera in più file. Ma non sono riuscito ad aggiungere un secondo file per esempio Second.hs, contenenti altre definizioni, alla mia unità pacchetto build attuale. Ho aggiunto in Leskah / Modifica pacchetto / file aggiuntivi. Ma questo doesnt sembrano fare il lavoro. Più sopra mi sento come si era un po 'fastidioso per aggiungere ogni di ogni nuovo file in questo modo (attraverso Leskah / Modifica pacchetto / Extra Files).

In ogni caso a seguito tutto ciò che è costruito è ancora solo il contenuto mia Main.hs. Sto sicuramente manca un certo punto?!

Un'altra questione è, in C ++, ho pesantemente uso namespace in modo da ordinare le definizioni di oggetti per argomento / obiettivo. Qual è l'equivalente di spazio dei nomi in Haskell? Un modulo? Un pacco ?

È stato utile?

Soluzione

Per quanto riguarda a leksah: è possibile aggiungere nuovo modulo attraverso il pannello Browser. Basta fare clic destro e selezionare "modulo Add" dal menu contestuale (Nota: inserire il nome del modulo, ma non un nome di file nella finestra di dialogo). Aggiungere moduli da Editor di pacchetti è stato progettato solo per aggiungere il modulo esistente al file cabala. (Se non sapete cosa significa "Cabal", allora è un buon momento per google it :))

Per quanto riguarda al namespace. Credo che l'equivalente più vicino è il modulo. Si può solo importare il modulo per aggiungere le definizioni di contesto attuale. In alternativa, è possibile importare il modulo qualificato, in questo caso si dovrà qualificare le definizioni dal modulo. Inoltre è possibile "alias" nome del modulo durante l'importazione di esso.

import Module1
import qualified Modile2
import Module3 as M3
import qualified Modile4 as M4

Il pacchetto è equivalente alla libreria compilata in C / C ++.

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