Class: Nydp::Builtin::Plus
- Inherits:
-
Object
- Object
- Nydp::Builtin::Plus
- Defined in:
- lib/nydp/builtin/plus.rb
Instance Method Summary collapse
Instance Method Details
#invoke(vm, args) ⇒ Object
2 3 4 |
# File 'lib/nydp/builtin/plus.rb', line 2 def invoke vm, args vm.push_arg sum(args, origin(args.car)) end |
#origin(obj) ⇒ Object
14 15 16 17 18 19 20 21 22 23 |
# File 'lib/nydp/builtin/plus.rb', line 14 def origin obj case obj when Fixnum 0 when Nydp::Pair Nydp.NIL when String, Nydp::StringAtom Nydp::StringAtom.new "" end end |
#sum(args, accum) ⇒ Object
6 7 8 9 10 11 12 |
# File 'lib/nydp/builtin/plus.rb', line 6 def sum args, accum if Nydp.NIL.is? args accum else sum(args.cdr, (accum + args.car)) end end |
#to_s ⇒ Object
25 26 27 |
# File 'lib/nydp/builtin/plus.rb', line 25 def to_s "Builtin:+" end |