Home
 

Lokale Definitionen

nextnextupuppreviouspreviouscontentscontents
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