next up previous contents
Next: Operatoren Up: Grundlegende Sprachelemente Previous: Typen von Funktionen

Funktionsdefinitionen

sind natürlich die Seele vom Geschäft und auf verschiedene Weise möglich, wobei man immer auf bereits vorhandenes Material aufbaut;

formell besteht eine Funktionsdefinition aus dem Definitionszeichen ``='',
einer linken Seite, die den Namen der Funktion und (wenn zur Definition nötig) formalen Parametern besteht,
einer rechten Seite, die (evtl. unter Benutzung der formalen Parameter) ein Ausdruck von entsprechendem Typ ist.

Beispiele:

 inc :: Int -> Int      - Typdeklaration

inc x = x + 1 - Funktionsdefinition
--- - Ausdruck, der benutzt:
- formalen Parameter x,
- vordefinierte Funktionen x und 1


k_aus_n :: Int -> Int -> Int
k_aus_n k n = fac n `div` (fac k * fac (n-k))


negative :: Num(a) => a -> Bool
negative x = x < 0


is_zero :: Num(a) => a -> Bool
is_zero x = x==0

Keine formalen Parameter benötigt man, wenn die neue Funktion eigentlich eine alte ist ...

 circle_area :: Float -> Float

circle_area = area


coarse_diff :: (Float -> Float) -> (Float -> Float)
coarse_diff = multi_diff 10.0 - partielle Anwendung, vgl. vorher

Im allgemeinen enthält die rechte Seite einer Definition eine


next up previous contents
Next: Operatoren Up: Grundlegende Sprachelemente Previous: Typen von Funktionen
Ronald Blaschke
1998-04-19