110
111
112
113
114
115
116
|
# File 'lib/rubylisp/prim_environment.rb', line 110
def self.environment_assignablep_impl(args, env)
return Lisp::Debug.process_error("environment-assignable? requires an environment for it's first argument, received: #{args.car}", env) unless args.car.environment?
return Lisp::Debug.process_error("environment-assignable? requires a symbol for it's second argument, received: #{args.cadr}", env) unless args.cadr.symbol?
local_env = args.car.value
binding = local_env.binding_for(args.cadr)
Lisp::Boolean.with_value(!binding.nil?)
end
|