diff options
Diffstat (limited to 'files/practicum/IKS.icl')
-rw-r--r-- | files/practicum/IKS.icl | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/files/practicum/IKS.icl b/files/practicum/IKS.icl new file mode 100644 index 0000000..cdcdce9 --- /dev/null +++ b/files/practicum/IKS.icl @@ -0,0 +1,40 @@ +module IKS + +import StdEnv +import StdMaybe +import StdDynamic, StdDynamicFileIO + +/** Een interpreter voor IKS. +*/ +// 1. Creeer de dynamics op disk +Start :: *World -> *World +Start world +# (_,world) = writeDynamic "I" (dynamic i :: A. a: a -> a) world + ... += world + +i :: a -> a +i x = x + +k :: a b -> a +k x y = x + +s :: (a -> b -> c) (a -> b) a -> c +s x y z = x z (y z) + + +// 2. Parseren van IKS expressies +:: IKS = I | K | S | N Int | App IKS IKS + +pIKS :: [Char] -> Maybe IKS +pIKS ... + + +// 3. Interpreteren van IKS expressies +interp :: (Dynamic,Dynamic,Dynamic) IKS -> Dynamic +interp ... + + +// 4. console +Start :: *World -> *World +Start ... |