summaryrefslogtreecommitdiff
path: root/examples/jem-math/MathEng.gf
diff options
context:
space:
mode:
Diffstat (limited to 'examples/jem-math/MathEng.gf')
-rw-r--r--examples/jem-math/MathEng.gf42
1 files changed, 42 insertions, 0 deletions
diff --git a/examples/jem-math/MathEng.gf b/examples/jem-math/MathEng.gf
new file mode 100644
index 000000000..ac29a504e
--- /dev/null
+++ b/examples/jem-math/MathEng.gf
@@ -0,0 +1,42 @@
+concrete MathEng of Math = {
+
+lincat
+ Prop, Exp = Str ;
+
+lin
+ And a b = a ++ "and" ++ b ;
+ Or a b = a ++ "or" ++ b ;
+ If a b = "if" ++ a ++ "then" ++ b ;
+
+ Zero = "zero" ;
+
+ X = "x" ;
+ Y = "y" ;
+
+ Successor x = "the successor of" ++ x ;
+
+ Sum x y = "the sum of" ++ x ++ "and" ++ y ;
+ Product x y = "the product of" ++ x ++ "and" ++ y ;
+
+ Even x = x ++ "is even" ;
+ Odd x = x ++ "is odd" ;
+ Prime x = x ++ "is prime" ;
+
+ Equal x y = x ++ "is equal to" ++ y ;
+ Less x y = x ++ "is less than" ++ y ;
+ Greater x y = x ++ "is greater than" ++ y ;
+ Divisible x y = x ++ "is divisible by" ++ y ;
+
+lincat
+ Var = Str ;
+lin
+ X = "x" ;
+ Y = "y" ;
+
+ EVar x = x ;
+ EInt i = i.s ;
+
+ ANumberVar x = "a number" ++ x ;
+ TheNumberVar x = "the number" ++ x ;
+
+}