2017-07-23 4 views
1

Gegeben eine Aufzeichnung wie Example {a = "a", b = "b", c = "c"} Wie kann ich irgendwelche Art des Records ähnlich drucken, um es einfacher zu lesen zu machen?Wie man Datensatztypen schön druckt?

Somthing wie:

Example { 
    a = "a" 
, b = "b" 
, c = "c" 
} 

wäre ideal.

Ich habe pPrint aus dem pretty-show Paket versucht, aber dies scheint keinen Unterschied zu show zu machen.

+0

'show' durch die' Prelude' definiert ist. Wenn Sie Daten schön drucken möchten, sollten Sie wahrscheinlich eine der Funktionen aus diesem anderen Paket verwenden. – SwiftsNamesake

Antwort

3

Dies kann erreicht werden durch: pretty-simple:

ghci> import Text.Pretty.Simple (pPrint) 
ghci> data Example = Example { a, b, c :: String } deriving Show 
ghci> pPrint Example {a = "a", b = "b", c = "c"} 
Example 
    { a = "a" 
    , b = "b" 
    , c = "c" 
    } 
4

Wie @SwiftsNamesake weist darauf hin, versuchen so etwas wie Text.Show.Pretty

import Text.Show.Pretty 

data Example = Example 
    { a :: String 
    , b :: String 
    , c :: String 
    } deriving (Show) 

main = print $ ppShow Example {a = "a", b = "b", c = "c"} 
+0

Ausgabe: 'Beispiel {a =" a ", b =" b ", c =" c "}'. Ich möchte, dass die Parameter in einer eigenen Zeile stehen. –

+0

Es scheint von der Zeilenlänge abhängig zu sein. Versuchen Sie, "a" auf eine längere Phrase zu setzen. – SwiftsNamesake