Class: AjLisp::FPrimitiveLet
- Inherits:
-
FPrimitive
- Object
- FPrimitive
- AjLisp::FPrimitiveLet
- Defined in:
- lib/ajlisp/fprimitive_let.rb
Constant Summary collapse
- @@instance =
nil
Class Method Summary collapse
Instance Method Summary collapse
Methods inherited from FPrimitive
Class Method Details
.instance ⇒ Object
9 10 11 12 |
# File 'lib/ajlisp/fprimitive_let.rb', line 9 def self.instance @@instance = new unless @@instance return @@instance end |
Instance Method Details
#apply(context, args) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/ajlisp/fprimitive_let.rb', line 14 def apply(context, args) arguments = args[0] args.shift newcontext = AjLisp::Context.new context while arguments pair = arguments.first atom = pair.first value = AjLisp::evaluate(context, pair.rest.first) newcontext.setValue atom.name, value arguments = arguments.rest end result = nil args.each do |arg| result = AjLisp::evaluate context, arg end return result end |