PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Haskell: Ausdrücke vergleichen


mobius
2007-01-21, 17:20:46
Hi Leute,

versuche gerade ein Programm zu schreiben in das man ganze Zahlen und oder Listen mit ganzen Zahlen eingeben kann. Das Programm soll dan sagen, ob das Paar gleich ist. Kann mir jemand sagen wie das funktioniert?

z.b. ob 3 : [] und [3] gleich sind oder [] : xs und xs, wobei xs so eine Liste mit ganzer Zahl ist.

Hatte erst eine Stunde Haskell und blick noch nicht durch.

Gnafoo
2007-01-21, 19:32:14
Ist eigentlich schon alles drin:

Prelude> [2,9] == [2,8]
False
Prelude> [2,9] == [2,9]
True
Prelude> [2,9] == [3,9]
False
Prelude> [3,9] == [3,9]
True
Prelude> 7 == 9
False
Prelude> 7 == 7
True
Prelude> read "[8, 9, 2]" :: [Int]
[8,9,2]
Prelude> read "5" :: Int
5

x : [] bzw. x : [y, z] sind nur andere Schreibweisen für [x] und [x, y, z]. Genauso wie ['a', 'b', 'c'] eine andere Schreibweise für "abc" ist. Der Gleichheitsoperator berücksichtigt das beim Vergleich (letztlich ist es eben das selbe). Ich kann nachher noch einmal mehr dazu schreiben, wenn du willst, hab aber grad nicht mehr Zeit ;).

Edit: wie soll denn die Eingabe erfolgen? Eigenständiges Programm, oder nur Funktionen gefragt?