Method: Lisp::PrimEnvironment.environment_assign_bang_impl_impl

Defined in:
lib/rubylisp/prim_environment.rb

.environment_assign_bang_impl_impl(args, env) ⇒ Object



119
120
121
122
123
124
125
# File 'lib/rubylisp/prim_environment.rb', line 119

def self.environment_assign_bang_impl_impl(args, env)
  return Lisp::Debug.process_error("environment-assign! requires an environment for it's first argument, received: #{args.car}", env) unless args.car.environment?
  return Lisp::Debug.process_error("environment-assign! 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)
  binding.value = args.caddr unless binding.nil?
end