diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lem_interp/interp_lib.lem | 7 | ||||
| -rw-r--r-- | src/test/test3.sail | 6 |
2 files changed, 7 insertions, 6 deletions
diff --git a/src/lem_interp/interp_lib.lem b/src/lem_interp/interp_lib.lem index 192cd641..4873149e 100644 --- a/src/lem_interp/interp_lib.lem +++ b/src/lem_interp/interp_lib.lem @@ -1,8 +1,9 @@ -open import Interp ;; +open import Interp +open import Interp_ast import Maybe_extra +open import Num -let add v = v ;; - +let add (V_tuple [V_lit(L_num x); V_lit(L_num y)]) = V_lit(L_num (x+y)) ;; let function_map = [ ("add", add); diff --git a/src/test/test3.sail b/src/test/test3.sail index 3127db28..8d0d9056 100644 --- a/src/test/test3.sail +++ b/src/test/test3.sail @@ -7,8 +7,8 @@ val ( nat -> nat effect { wmem , rmem } ) MEM_GPU val ( ( nat * nat ) -> nat effect { wmem , rmem } ) MEM_SIZE (* extern functions *) -val extern ( nat -> nat pure ) add = "add" -val extern ( nat -> nat pure ) (: + ) = "add_infix" (* infix plus *) +val extern ( ( nat * nat ) -> nat pure ) add = "add" +val extern ( ( nat * nat ) -> nat pure ) (: + ) = "add_infix" (* infix plus *) function nat (: * ) ( < nat > x, < nat > y ) = 42 @@ -36,5 +36,5 @@ function nat main _ = { (* extern calls *) 3 + 39; - add(5); + add((5, 37)); } |
