2016-07-12 9 views
8

Gibt es eine Möglichkeit, Ghci eine benutzerdefinierte Pretty-Print-Funktion statt für bestimmte Typen anzeigen zu lassen? Eine allgemeinere Frage: Was sind die allgemeinen Richtlinien, um eine Bibliothek im interaktiven Modus so gut wie möglich nutzbar zu machen? Vielen Dank.Pretty-Drucken in Ghci

Antwort

7

Sie können eine benutzerdefinierte Pretty-Print-Funktion unter Verwendung des --interactive-print-Flags angeben und eine beliebige Funktion im Bereich mit dem Typ C a => a -> IO() für eine Einschränkung C benennen. (Siehe Section 2.4.9 der Dokumentation für Details.)

ghci --interactive-print=MyModule.prettyPrint 

Dies bedeutet, dass Sie Ihre eigene Funktion von Ihrem eigenen typeclass angeben. Es gibt keine Möglichkeit, dies für eine bestimmte Art nur zu tun, aber Ihre eigene Klasse

instance Show a => PrettyPrint a where prettyPrint = show 

eine Ausweich Instanz wie immer, dazu gehören zumindest OverlappingInstances zu arbeiten erfordert.