Motivation: Numerik

Skalarprodukt von zwei Vektoren von Zahlen:

skal :: [Int] -> [Int] -> Int
skal xs ys = case (xs,ys) of
    ( [], [] ) -> 0
    ( x:xs', y:ys' ) -> x*y + skal xs' ys'
Skalarprodukt für beliebige Vektoren:
mit Wörterbuch (dictionary) als Argument
data Num_Dict a = Num_Dict { zero :: a
  , plus :: a -> a -> a
  , times :: a -> a -> a }
skal :: Num_Dict a -> [a] -> [a] -> a
skal d xs ys = ...



Johannes Waldmann 2013-06-11