zu konvertieren Ich versuche, einen Code zu schreiben, um eine Ganzzahl zu nehmen und diese Ganzzahl in Worten auszugeben. Bsp .: Wenn die Eingabe 4321 ist, ist die Ausgabe viertausenddreihundertzehnundzwanzig. Dazu möchte ich zunächst die Eingabe in die einzelnen Ziffern zerlegen. Ex-Eingang 4321 würde eine Anordnung von [4,3,2,1] werden.Ich versuche, Ints in Zeichenfolgen in Haskell
Mein aktueller Code
newtype wordInt = WI Int
instance Show WordInt where
show (WI x) | x>= 0 = helper x
| x < 0 = helper -x
helper 0 = [0]
helper x = x `mod` 10 : helper (x `div` 10)
Im Moment denke ich, ich bin ein Typ Fehler. Bitte beachten Sie, dass dies in der Lage sein muss, sowohl positive als auch negative Zahlen zu übergeben. Wenn Sie sich einen effizienten Weg vorstellen können, um die gewünschte Konvertierung durchzuführen, wäre dies sehr zu begrüßen.
Ihre Hilfsfunktion ist in Ordnung (bis zur Verwendung von '' 'anstelle von' \ '' auf 'div'), aber geht nur halbwegs zu Ihrem Ziel; h. es bricht die Eingabe in ihre einzelnen Ziffern auf, übersetzt sie jedoch nicht in Wörter. Deshalb beschwert sich der Compiler. –
das war ein Tippfehler, als ich es zum Stack hinzugefügt habe. Mein tatsächlicher Code hat 'div' nicht 'div'. – Rick
Und vergiss nicht das -minInt == minInt. – augustss