blob: 6ef72571ad9e4a731a190103456d227255dcc82b (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
definition module Lambda
import StdEnv
:: Term = C Value // constante v (C v)
| X Index // variabele x_i (X i)
| (@.) infixl 7 Term Term // applicatie (t1 t2) (t1 @. t2)
| \. Index Term // abstractie (\x_i . t) (\. i t)
:: Value :== Int // willekeurige integer waarde
:: Index :== Int // index (gebruikelijk i >= 0)
instance toString Term
nf :: Term -> Bool
vars :: Term -> [Index]
(<:) infixl 6 :: Term (Index,Term) -> Term
normal_order :: Term -> Term
applicative_order :: Term -> Term
herschrijf :: (Term -> Term) Term -> Term
|