Class: AjLisp::FPrimitiveDefinef

Inherits:
FPrimitive show all
Defined in:
lib/ajlisp/fprimitive_definef.rb

Constant Summary collapse

@@instance =
nil

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from FPrimitive

#evaluate

Class Method Details

.instanceObject



9
10
11
12
# File 'lib/ajlisp/fprimitive_definef.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
# File 'lib/ajlisp/fprimitive_definef.rb', line 14

def apply(context, args)
    atom = args[0]
		
		if args.length > 2
			args.shift
			arguments = args.shift
			value = AjLisp::FPrimitiveClosure.new arguments, args
		else
			value = AjLisp::evaluate(context, args[1])
		end

		AjLisp::context.setValue atom.name, value
		return value
end