summaryrefslogtreecommitdiff
path: root/files/practicum/IKS.icl
diff options
context:
space:
mode:
Diffstat (limited to 'files/practicum/IKS.icl')
-rw-r--r--files/practicum/IKS.icl40
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 ...