Was Haskell ÄquivalentString Formatierung in Haskell
string str = string.Format("{0} {1}",10,20); // C#
Was Haskell ÄquivalentString Formatierung in Haskell
string str = string.Format("{0} {1}",10,20); // C#
Es gibt eine Printf-Modul in GHC.
import Text.Printf
str :: String
str = printf "%d %d" 10 20
jedoch ist es wahrscheinlich einfacher zu tun, nur
str = show 10 ++ " " ++ show 20
Sie könnten die von der text-format-simple Paket bereitgestellt format
Funktion:
import Text.Format
format "{0} {1}" [show 10, show 20]
dieser Funktion wird die Signatur hat:
format :: String -> [String] -> String
alles, was Sie brauchen, ist also Ihre Parameter als Strings liefern.
Ein weiteres Beispiel:
format "Some {0} believes that 1 + 1 = {1}." ["people",show 10]
Wow! C# Stil Formatierung in Haskell. Gute Arbeit Dmitry! und willkommen bei stackoverflow! –
Ich empfehle/nicht/dieses Paket zu verwenden, da es sehr eingeschränkt ist, was es tun kann. Ich arbeite an einem Paket mit dem Namen [text-format] (http://hackage.haskell.org/package/text-format), das in der Regel leistungsfähiger und für diesen Zweck bereits recht brauchbar ist. –
Dmitry, alle Pakete, die Sie aufgelistet haben, außer Doppelkonvertierung, sind in der Haskell Platform enthalten. Die große Mehrheit der Benutzer wird nicht so viel installieren müssen. Ihr Argument ist trotzdem gültig. –
Putting für Antwort hier, wenn jemand die Suche Bibliotheken Formatierung in Haskell auf Stackoverflow. Es gibt jetzt eine typsichere und schnelle Formatierungsbibliothek namens fmt
. Mit ihm können Sie Code wie folgt schreiben:
> "There are "+|n|+" million bicycles in "+|city|+"."
Es funktioniert nicht, ich habe 'ERROR filename.hs: 3: Kann Einschränkungen in explizit typisierte Bindung nicht rechtfertigen '. Ich benutze WinHugs. –
Sie sollten zu GHC wechseln. Hugs wird nicht gepflegt, ist langsam und unterstützt nur sehr wenige der Pakete in Hackage. Es ist auch nicht Teil der Haskell-Plattform-Spezifikation. –
'Text.Printf.printf' gibt eine IO-Aktion (' IO() ') zurück, wenn sie vollständig angewendet wird, keine' Zeichenkette'. – SwiftsNamesake