diff options
| author | Joel Martin <github@martintribe.org> | 2014-04-10 22:24:58 -0500 |
|---|---|---|
| committer | Joel Martin <github@martintribe.org> | 2014-04-10 22:24:58 -0500 |
| commit | 8bf53bec72d27d7d895b39812ffae1e990425158 (patch) | |
| tree | a658f2900b9ceff44522780b3d5c28afb1abf0e2 /ruby/core.rb | |
| parent | b5f469de182a3e95b2d968ddccf2e2f9b77a3dc2 (diff) | |
| download | mal-8bf53bec72d27d7d895b39812ffae1e990425158.tar.gz mal-8bf53bec72d27d7d895b39812ffae1e990425158.zip | |
Ruby: step4_if_fn_do with core functions.
Diffstat (limited to 'ruby/core.rb')
| -rw-r--r-- | ruby/core.rb | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/ruby/core.rb b/ruby/core.rb new file mode 100644 index 0000000..268ebad --- /dev/null +++ b/ruby/core.rb @@ -0,0 +1,20 @@ +$core_ns = { + :"=" => lambda {|a,b| a == b}, + :"pr-str" => lambda {|*a| a.map {|e| _pr_str(e, true)}.join(" ")}, + :"str" => lambda {|*a| a.map {|e| _pr_str(e, false)}.join("")}, + :"prn" => lambda {|*a| puts(a.map {|e| _pr_str(e, true)}.join(" "))}, + :"println" => lambda {|*a| puts(a.map {|e| _pr_str(e, false)}.join(" "))}, + :< => lambda {|a,b| a < b}, + :<= => lambda {|a,b| a <= b}, + :> => lambda {|a,b| a > b}, + :>= => lambda {|a,b| a >= b}, + :+ => lambda {|a,b| a + b}, + :- => lambda {|a,b| a - b}, + :* => lambda {|a,b| a * b}, + :/ => lambda {|a,b| a / b}, + :list => lambda {|*a| List.new a}, + :list? => lambda {|*a| a[0].is_a? List}, + :empty? => lambda {|a| a.size == 0}, + :count => lambda {|a| a.size}, +} + |
