2014-12-06 17 views
6

Io sono in procinto di mettere in ordine un codice Elm e mi chiedevo come fare il seguente:Come strutturare le librerie in Elm?

Supponiamo che io ho la seguente struttura del file

Project 
| 
|---Car 
    | 
    |--- BMW.elm 
    | 
    |--- Mercedes.elm 

|... 

Supponiamo che io ho diviso il BMW e Codice Mercedes in file diversi per mantenere il mio codice piccolo e separato e quindi è molto più semplice aggiungere semplicemente un altro file, ad esempio Toyota.elm

Ora, vorrei che tutti i file all'interno della cartella Progetto accedessero a tutti file nella cartella Car con out dover scrivere

import Car.BMW (..) 
import Car.Mercedes (..) 
...etc... 

Idealmente, mi piacerebbe scrivere semplicemente qualcosa come

import Car (..) 

e che appena mi dà accesso a tutto ciò all'interno di ognuno di questi file.

È possibile? Se sì, quale è la migliore strategia per farlo?

risposta

1

Elm non supporta i moduli di riesportazione, quindi non è possibile creare un singolo modulo che esporta una manciata di altri che è possibile utilizzare per qualificare le funzioni. Supponendo di avere i nomi delle funzioni distinte, si potrebbe fare qualcosa di simile:

module Utils where 
import Foo 
import Bar 

foo = Foo.foo 
bar = Bar.bar 

allora si può fare

module Other where 
import Utils (..) 

baz = foo 1 2 3 

gak = bar 2 3 

Ma non sarà in grado di ottenere il nome completo per l'esportazione dal modulo Utils.

Spero che questo aiuti!

+0

Grazie mille ma sembra un sacco di problemi. Immagino sia molto più semplice avere una cascata di istruzioni di importazione. :( – TheSeamau5

+1

Penso che l'idea di esportare i moduli renda difficile capire da dove vengono le cose quando si guarda il codice.Inoltre, un buon editor dovrebbe essere in grado di gestire automaticamente le tue importazioni per te. – Joe

+0

C'è un editore che supporta la gestione automatica delle importazioni in Elm? – TheSeamau5