aboutsummaryrefslogtreecommitdiff
path: root/ruby/core.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ruby/core.rb')
-rw-r--r--ruby/core.rb5
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},
}