Lösungen zu den Übungen aus  Kapitel 2
   
Übung 1
Download:
Binomi.hs
Inhalt der Datei Binomi.hs

module Binomi where

binomi1 :: Integer -> Integer -> Integer
binomi1 a b = a*a + b*b + 2*a*b

binomi2 :: Integer -> Integer -> Integer
binomi2 a b = a*a + b*b - 2*a*b

binomi3 :: Integer -> Integer -> Integer
binomi3 a b = a*a - b*b

 

Übung 2
Download:
Flaechen.hs
Inhalt der Datei Flaechen.hs

module Flaechen where

quadratFlaeche :: Float -> Float
quadratFlaeche a = a^2

rechteckFlaeche :: Float -> Float -> Float
rechteckFlaeche a b = a*b

kreisFlaeche :: Float -> Float
kreisFlaeche r = pi * r^2
 

Übung 3
 
import Char
toLowerCase :: Char -> Char

toLowerCase c | isUp c = chr (ord c + (ord 'a' - ord 'A'))
              | otherwise = c

isUp c = 'A' <= c && c <= 'Z'
 

Übung 4 inc :: Integer -> Integer
inc x = x+1

dec :: Integer -> Integer
dec x = x -1

Testen der Funktionen:

*EigeneFunktionen> inc 2
3
*EigeneFunktionen> dec 3
2

Testen der Komposition.

*EigeneFunktionen> (inc.dec) 3
3

Prüfen der Vertauschbarkeit der Funktionen bezüglich ihrer Komposition.

*EigeneFunktionen> (inc.dec) 4 == (dec.inc) 4
True

 

Übung 5 istPalindrom :: String -> Bool
istPalindrom x = x == reverse x

Testen der Funktion:

*EigeneFunktionen> istPalindrom "otto"
True
*EigeneFunktionen> istPalindrom "Otto"
False
 

Übung 6
Download:
Kapitel02L.hs
(+++) :: Integer -> Integer -> Integer
f +++ g = f+g
weiter  zu Kapitel 03: Rekursive Funktionen
 


(C) Michael Pohlig 2005   -> www.pohlig.de