in eval_func_call, just use let-destructuring instead of match