Lokale Definitionen
Next:TypenUp:Grundlegende SprachelementePrevious:Layout
Lokale Definitionen
Mit where-Klauseln kann man Definitionen qualifizieren, d.h. auf eine untergeordnete Definition stützen:
area r = pi * r * r
where pi = 3.14
Mit let kann man was Entsprechendes für Ausdrücke tun:
let x = 1 in x + 1
let x = 3
f y = x + y
in f x
Damit dann Frage nach Gültigkeitsbereich / scope:
- 1.
- Gültigkeit einer gewöhnlichen Definition ist das ganze Skript, in dem sie enthalten ist;
Reihenfolge der Aufschreibung ist egal!
- 2.
- untergeordnete Definitionen gelten nur lokal, d.h. scope ist durch die übergeordnete Definition gegeben:
two_areas x y = area x + area y
where area x = pi * square x
where pi = 3.14
square x = x * x
beachte:
- zweite Schachtelung im Beispiel nicht nötig - man kann alles "`flach"' und in beliebiger Reihenfolge aufschreiben,
- Wiederverwendung des Bezeichners x als Parameter verdeckt natürlich die frühere Einführung - es gilt immer die "`lokalste"' Version
- Layout, Layout, Layout
Ronald Blaschke
1998-04-19