Gepostet: |
Suche nach Möglichkeiten den Wert einer Variable während der Berechnung anzuzeigen | ||||||||||
Bei imperativen Programmiersprachen ist es möglich, sich den Wert einer Variable zu einem bestimmten Schritt der Auswertung ausgeben zu lassen. x * (komplizierte_Funktion x y) print x -- Wenn ich das Programm ablaufen lasse, sehe ich welchen Wert x in diesem Auswertungsschritt hat x* (weiterrechnen_mit_x) Bei fremden Programmen ist das sehr nützlich um herauszufinden, auch um schnell heruaszubekommen für was die Variable eigentlich steht... Gibt es eine Möglichkeit, sowas auch bei Haskell (und anderen funktionalen Programmiersprachen) zu verwirklichen? |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Wahrscheinlich ist das cleverste, den Umgang mit einem Debugger zu lernen. Natürlich lässt sich auch immer eine Art Meldung mitschleifen, etwa in deinem scanr2-Beispiel:
Aber das verändert natürlich massiv die Struktur deines Codes. Etwas bequemer, aber immer noch nicht Syntax-neutral, ist die Verwendung von Monaden, z.B. Writer: http://learnyouahaskell.com/for-a-few-monads-more#writer Dann bliebe noch die Möglichkeit, an einer bestimmten Stelle und entsprechenden Bedingungen bewußt einen Error auszulösen, und in der Meldung die interessanten Werte zu übergeben. In deinem scanr2 Beispiel wollen wir z.B. die Werte sehen, wenn xs nur noch 2 Elemente hat:
|
|||||||||||
Zum Seitenanfang | |||||||||||