Vorlesung: Praxis der Funktionalen Programmierung | Index

Auswertung (Interpretation) von Ausdrücken

module Arithmetik_Eval where

import Arithmetik_Type

eval :: Term -> Integer
eval t = case key t of
    Constant n -> n
    Operator o -> let [ l, r ] = map eval $ children t
		      f = meaning o
		  in  f l r

meaning :: Op -> (Integer -> Integer -> Integer)
meaning Plus  = (+)
meaning Minus = (-)
meaning Mal   = (*)
meaning Durch = div




best viewed with any browser


http://www.informatik.uni-leipzig.de/~joe/ mailto:joe@informatik.uni-leipzig.de