module Klam::CompilationStages::MakeAbstractionsVariadic
Make Abstractions Variadic
Kl's lambda special form only accepts a single parameter for the abstraction. It is useful internally, however, to allow abstractions to have zero or more parameters.
Public Instance Methods
make_abstractions_variadic(sexp)
click to toggle source
# File lib/klam/compilation_stages/make_abstractions_variadic.rb, line 9 def make_abstractions_variadic(sexp) if sexp.instance_of?(Array) if sexp[0] == :lambda rator, param, form = sexp [rator, [param], make_abstractions_variadic(form)] else sexp.map { |form| make_abstractions_variadic(form) } end else sexp end end