summaryrefslogtreecommitdiff
path: root/src/lem_interp
diff options
context:
space:
mode:
authorGabriel Kerneis2014-02-07 13:21:52 +0000
committerGabriel Kerneis2014-02-07 13:21:52 +0000
commitdcbc80a3419a828da8cdb6250ecb52f52a72a28b (patch)
treebc2b5d4ff036f77c5f53fa34ff37b2f607436e11 /src/lem_interp
parent11354eafbc9d636455c7265f6f9f3e24ef8eb056 (diff)
Implement is_one
Diffstat (limited to 'src/lem_interp')
-rw-r--r--src/lem_interp/interp_lib.lem3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/lem_interp/interp_lib.lem b/src/lem_interp/interp_lib.lem
index b20647fb..f6485666 100644
--- a/src/lem_interp/interp_lib.lem
+++ b/src/lem_interp/interp_lib.lem
@@ -7,6 +7,8 @@ open import List
let compose f g x = f (V_tuple [g x]) ;;
+let is_one (V_lit b) = V_lit (if b = L_one then L_true else L_false) ;;
+
let eq (V_tuple [x; y]) = V_lit (if x = y then L_true else L_false) ;;
let neg (V_tuple [V_lit arg]) = V_lit (match arg with
@@ -28,6 +30,7 @@ let function_map = [
("add_infix", add);
("=", eq);
(":", vec_concat);
+ ("is_one", is_one);
] ;;
let eval_external name v = (Maybe_extra.fromJust (List.lookup name function_map)) v ;;