Module: Klam::CompilationStages::ConvertFreezesToLambdas

Included in:
Klam::Compiler
Defined in:
lib/klam/compilation_stages/convert_freezes_to_lambdas.rb

Instance Method Summary collapse

Instance Method Details

#convert_freezes_to_lambdas(sexp) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
# File 'lib/klam/compilation_stages/convert_freezes_to_lambdas.rb', line 4

def convert_freezes_to_lambdas(sexp)
  if sexp.instance_of?(Array)
    if sexp[0] == :freeze
      [:lambda, [], convert_freezes_to_lambdas(sexp[1])]
    else
      sexp.map { |form| convert_freezes_to_lambdas(form) }
    end
  else
    sexp
  end
end