aboutsummaryrefslogtreecommitdiff
path: root/php/step9_interop.php
diff options
context:
space:
mode:
Diffstat (limited to 'php/step9_interop.php')
-rw-r--r--php/step9_interop.php8
1 files changed, 3 insertions, 5 deletions
diff --git a/php/step9_interop.php b/php/step9_interop.php
index a699109..3debdc4 100644
--- a/php/step9_interop.php
+++ b/php/step9_interop.php
@@ -122,16 +122,14 @@ function MAL_EVAL($ast, $env) {
break;
case "fn*":
return _function('MAL_EVAL', 'native',
- _hash_map('exp', $ast[2],
- 'env', $env,
- 'params', $ast[1]));
+ $ast[2], $env, $ast[1]);
default:
$el = eval_ast($ast, $env);
$f = $el[0];
$args = array_slice($el->getArrayCopy(), 1);
if ($f->type === 'native') {
- $ast = $f->meta['exp'];
- $env = new Env($f->meta['env'], $f->meta['params'], $args);
+ $ast = $f->ast;
+ $env = $f->gen_env($args);
} else {
return $f->apply($args);
}