C'è un modo per fare in modo che ghci usi una funzione di stampa carina personalizzata invece di mostrare per determinati tipi? Una domanda più generale: quali sono le linee guida generali per rendere una libreria il più possibile utilizzabile in modalità interattiva? Grazie.Pretty-printing in ghci
8
A
risposta
7
È possibile specificare una funzione di stampa carina personalizzata utilizzando il flag --interactive-print
e denominando qualsiasi funzione nell'ambito con il tipo C a => a -> IO()
per qualsiasi vincolo C
. (Vedere Section 2.4.9 dei documenti per i dettagli.)
ghci --interactive-print=MyModule.prettyPrint
Ciò significa che è possibile specificare la propria funzione dal proprio typeclass. Non c'è modo per fare questo solo per un tipo specifico, ma la classe personalizzata può sempre includere un esempio di ripiego come
instance Show a => PrettyPrint a where prettyPrint = show
Ciò richiederà almeno OverlappingInstances
al lavoro.
Problemi correlati
- 1. Come indentare gli attributi in quando prettyprinting xml in python?
- 2. Strano comportamento in GHCi
- 3. Comandi multilinea in GHCi
- 4. pattern matching in GHCi
- 5. Haskell csv-conduit in GHCi
- 6. Come interrompere l'esecuzione in GHCI?
- 7. tipo familiare Shenanigans in GHCi
- 8. Modello Haskell: reify in GHCi
- 9. discarica ambiente GHCi
- 10. Strange Haskell/GHCi problema
- 11. Come utilizzare più clausole where in GHCi?
- 12. ghci - raccolta desiderosa in modalità interattiva?
- 13. Lavori in ghci ma non nel file
- 14. Come tornare al preludio> in ghci
- 15. Come posso inserire un backtick in GHCi?
- 16. Impossibile immettere istruzioni multilinea in GHCi
- 17. Come caricare uno script in ghci?
- 18. Impostare vi come editor in GHCi
- 19. completamento della scheda ghci in modalità haskell
- 20. Haskell ghci simbolo lambda in pronta
- 21. Test-suite Haskell Stack Ghci
- 22. ghci visualizzazione stack di esecuzione
- 23. In GHCi, perché non posso mostrare `pure 1` in REPL?
- 24. ghci non caricando funzione da file
- 25. ghci mostra solo i metodi typeclass
- 26. Perché ricevo questo avviso da GHCi?
- 27. GHCi ignora la firma del tipo
- 28. Can runhaskell accetta opzioni da .ghci?
- 29. comprensione comportamento Haskell/GHCI per la ricorsione
- 30. Posso ridurre l'utilizzo della memoria ghci?