aboutsummaryrefslogtreecommitdiff
path: root/matlab/core.m
diff options
context:
space:
mode:
authorJoel Martin <github@martintribe.org>2015-02-08 13:18:08 -0600
committerJoel Martin <github@martintribe.org>2015-02-08 23:51:22 -0600
commit6d12affa8bc91a6662e8d4bdcc66a6963b77e947 (patch)
tree644d5a482081600faafc09e679fb1006796de659 /matlab/core.m
parentd6624158bdf41e047ad8d0a9942238dc80649901 (diff)
downloadmal-6d12affa8bc91a6662e8d4bdcc66a6963b77e947.tar.gz
mal-6d12affa8bc91a6662e8d4bdcc66a6963b77e947.zip
matlab: all step4 except optional.
Diffstat (limited to 'matlab/core.m')
-rw-r--r--matlab/core.m38
1 files changed, 33 insertions, 5 deletions
diff --git a/matlab/core.m b/matlab/core.m
index 968b9a4..8a64934 100644
--- a/matlab/core.m
+++ b/matlab/core.m
@@ -1,16 +1,44 @@
classdef core
methods(Static)
+ function str = pr_str(varargin)
+ strs = cellfun(@(s) printer.pr_str(s,true), varargin, ...
+ 'UniformOutput', false);
+ str = strjoin(strs, ' ');
+ end
+ function str = do_str(varargin)
+ strs = cellfun(@(s) printer.pr_str(s,false), varargin, ...
+ 'UniformOutput', false);
+ str = strjoin(strs, '');
+ end
+ function ret = prn(varargin)
+ strs = cellfun(@(s) printer.pr_str(s,true), varargin, ...
+ 'UniformOutput', false);
+ fprintf('%s\n', strjoin(strs, ' '));
+ ret = types.nil;
+ end
+ function ret = println(varargin)
+ strs = cellfun(@(s) printer.pr_str(s,false), varargin, ...
+ 'UniformOutput', false);
+ fprintf('%s\n', strjoin(strs, ' '));
+ ret = types.nil;
+ end
+
function n = ns()
n = containers.Map();
- n('=') = @(a,b) a==b;
+ n('=') = @types.equal;
+
+ n('pr-str') = @core.pr_str;
+ n('str') = @core.do_str;
+ n('prn') = @core.prn;
+ n('println') = @core.println;
n('<') = @(a,b) a<b;
n('<=') = @(a,b) a<=b;
n('>') = @(a,b) a>b;
n('>=') = @(a,b) a>=b;
- n('+') = @(a,b) a+b;
- n('-') = @(a,b) a-b;
- n('*') = @(a,b) a*b;
- n('/') = @(a,b) floor(a/b);
+ n('+') = @(a,b) a+b;
+ n('-') = @(a,b) a-b;
+ n('*') = @(a,b) a*b;
+ n('/') = @(a,b) floor(a/b);
n('list') = @(varargin) varargin;
n('list?') = @iscell;