Le collisioni di nomi e l'ottimizzazione della dimensione binaria sono solo due dei vantaggi che si possono ottenere. In effetti, è una buona pratica identificare sempre ciò che vuoi ottenere dal mondo esterno del tuo codice. Quindi, ogni volta che le persone guardano il tuo codice, sapranno esattamente che cosa richiede il tuo codice.
Questo ti dà anche una buona possibilità di creare soluzioni di simulazione per test, dal momento che puoi lavorare attraverso l'elenco delle importazioni e scrivere mocking per loro.
Sfortunatamente, in Haskell le istanze di classe del tipo non sono così facili. Vengono importati implicitamente e quindi possono creare conflitti, inoltre possono rendere più difficile il mocking, poiché non c'è modo di specificare solo istanze di classe specifiche. Speriamo che questo possa essere risolto nelle versioni future di Haskell.
UPDATE
I benifits ho elencato sopra (manutenzione del codice e test di scherno) non sono limitati a Haskell. In realtà, è anche una pratica comune in Java, come so. In Java puoi semplicemente importare una singola classe, o anche una singola variabile statica/metodo. Sfortunatamente, ancora non è possibile importare in modo selettivo le funzioni dei membri.
fonte
2013-10-24 00:03:04
idk se renderebbe un file binario più piccolo ma può essere utile se esistono collisioni di funzioni per funzioni che non sono necessarie. Invece di importare un modulo qualificato e poi digitare ciò che hai importato più e più volte. Puoi semplicemente importare le parti che ti servono e non importarle qualificate. – DiegoNolan