summaryrefslogtreecommitdiff
path: root/src/lem_interp/interp_lib.lem
diff options
context:
space:
mode:
Diffstat (limited to 'src/lem_interp/interp_lib.lem')
-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 ;;