diff options
| author | Jan Tuomi <jans.tuomi@gmail.com> | 2022-09-26 14:02:28 +0300 |
|---|---|---|
| committer | Jan Tuomi <jans.tuomi@gmail.com> | 2022-12-05 14:21:53 +0200 |
| commit | 2ea2c405746bfa79d3be478f4c8763dd7dd6ac5f (patch) | |
| tree | 39be22d6a3b768e42813e2e5dde4a37a301aafb3 /src/Builtins.hs | |
| parent | 3f5b15b15fbca3dac18f3f5cb39b7826924ff175 (diff) | |
Add some concept docs
Diffstat (limited to 'src/Builtins.hs')
| -rw-r--r-- | src/Builtins.hs | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/Builtins.hs b/src/Builtins.hs index a4676b8..2eedbed 100644 --- a/src/Builtins.hs +++ b/src/Builtins.hs @@ -13,7 +13,9 @@ builtinEnv = M.fromList [ ("/", builtinDivide2), ("head", builtinHead), ("tail", builtinTail), - ("prepend", builtinPrepend) + ("prepend", builtinPrepend), + ("print!", builtinPrint), + ("string-concat", builtinStringConcat2) ] -- maybe make a builtinBinaryFunction? @@ -93,3 +95,21 @@ builtinPrepend = return $ ASTVector $ ast1 : vec return $ ASTFunction $ inner in ASTFunction outer + +builtinPrint :: AST +builtinPrint = + let outer _ ast = + do (ASTString str) <- assertIsASTString ast + liftIO $ putStr $ str + return ASTUnit + in ASTFunction outer + +builtinStringConcat2 :: AST +builtinStringConcat2 = + let outer _ ast1 = do + (ASTString str1) <- assertIsASTString ast1 + let inner _ ast2 = do + (ASTString str2) <- assertIsASTString ast2 + return $ ASTString $ str1 ++ str2 + return $ ASTFunction $ inner + in ASTFunction outer |
