diff options
| author | Joel Martin <github@martintribe.org> | 2014-04-10 23:27:50 -0500 |
|---|---|---|
| committer | Joel Martin <github@martintribe.org> | 2014-04-10 23:27:50 -0500 |
| commit | d85fc03775e0f99d1c17ce62d5aad5bbcd8ae106 (patch) | |
| tree | f7bee4a4f67a61cce150e7125e018f6ebdc8fec2 /ruby/core.rb | |
| parent | 01e254893fede2c88fa7d2210da9e03af3a12617 (diff) | |
| download | mal-d85fc03775e0f99d1c17ce62d5aad5bbcd8ae106.tar.gz mal-d85fc03775e0f99d1c17ce62d5aad5bbcd8ae106.zip | |
Ruby: add step8_macros
Diffstat (limited to 'ruby/core.rb')
| -rw-r--r-- | ruby/core.rb | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/ruby/core.rb b/ruby/core.rb index 268ebad..824b59b 100644 --- a/ruby/core.rb +++ b/ruby/core.rb @@ -14,6 +14,11 @@ $core_ns = { :/ => lambda {|a,b| a / b}, :list => lambda {|*a| List.new a}, :list? => lambda {|*a| a[0].is_a? List}, + :cons => lambda {|a,b| List.new(b.clone.insert(0,a))}, + :concat => lambda {|*a| List.new(a && a.reduce(:concat) || [])}, + :nth => lambda {|a,b| a[b]}, + :first => lambda {|a| a[0]}, + :rest => lambda {|a| List.new(a.size > 0 && a.drop(1) || [])}, :empty? => lambda {|a| a.size == 0}, :count => lambda {|a| a.size}, } |
