pub fn eval_function( name: &str, params: &[Param], body: &Expr, current_env: &HashMap<String, Value>, env_set: impl FnMut(String, Value), ) -> Result<Value, InterpreterError>
Evaluate a function definition
Cyclomatic complexity: 3 (within Toyota Way limits)