2013-10-26 27 views
5

In Haskell è possibile importare solo alcune funzioni di un modulo come questo:Che effetto ha l'importazione solo alcune funzioni di un modulo hanno

import SomeModule(funFoo, funBar) 

dove SomeModule definisce presumibilmente più funzioni di un semplice funFoo e funBar. Questa è una buona pratica? Quali ricompense ci sono per fare questo? Rende il codice dell'oggetto più piccolo o qualcosa del genere?

risposta

7

Il vantaggio principale di limitare le importazioni da un modulo è di evitare di importare nomi che entrano in conflitto con un altro modulo (o Preludio). Non rende il codice dell'oggetto più piccolo.

+6

Un altro vantaggio che trovo è che ti dice un po 'su cosa fa il modulo. Se vedo 'import Control.Monad' mi aspetto un bel po 'di magie monade, ma se vedo' import Control.Monad (forM_) 'So che tutto ciò che accade veramente è una funzione che si sovrappone a un elenco di effetti collaterali. – kqr

Problemi correlati