fix eval.c:find logic
This commit is contained in:
parent
9a12d2ac9f
commit
07300eff7c
12
eval.c
12
eval.c
@ -65,16 +65,12 @@ clone(Object *p)
|
|||||||
static Object*
|
static Object*
|
||||||
find(Object *env, Object *obj)
|
find(Object *env, Object *obj)
|
||||||
{
|
{
|
||||||
Object *res = 0;
|
|
||||||
for(Object *cur=env->sp->car; cur!=&Nil; cur=cur->up)
|
for(Object *cur=env->sp->car; cur!=&Nil; cur=cur->up)
|
||||||
for(Object *p=cur->local; p!=&Nil; p=cdr(p))
|
for(Object *p=cur->local; p!=&Nil; p=cdr(p))
|
||||||
if(strequal(obj, car(car(p)))){
|
if(strequal(obj, car(car(p))))
|
||||||
res = p;
|
return clone(cdr(car(p)));
|
||||||
break;
|
error("not exist variable");
|
||||||
}
|
return 0;
|
||||||
if(res == 0)
|
|
||||||
error("not exist variable");
|
|
||||||
return clone(cdr(car(res)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static Object*
|
static Object*
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user