Class: AjLisp::FPrimitiveIf

Inherits:
FPrimitive show all
Defined in:
lib/ajlisp/fprimitive_if.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_if.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
# File 'lib/ajlisp/fprimitive_if.rb', line 14

def apply(context, args)
    condition = args[0]
    args.shift
    thenform = args[0]
    args.shift
    
    if AjLisp::evaluate context, condition
        return AjLisp::evaluate context, thenform
    end
    
		result = nil
		
		args.each do |arg|
			result = AjLisp::evaluate context, arg
		end

		return result
end