fix: debruijn index - 1
Co-authored-by: rvcas <x@rvcas.dev>
This commit is contained in:
parent
d55409d8c5
commit
a5140513de
|
@ -1,4 +1,4 @@
|
||||||
(program
|
(program
|
||||||
1.0.0
|
1.0.0
|
||||||
[ (builtin addInteger) (con integer 2) (con integer 3) ]
|
[ (lam x (lam y [ (builtin addInteger) x y ])) (con integer 5) (con integer 7) ]
|
||||||
)
|
)
|
||||||
|
|
|
@ -168,7 +168,7 @@ impl Machine {
|
||||||
Term::Var(name)
|
Term::Var(name)
|
||||||
} else {
|
} else {
|
||||||
this.env
|
this.env
|
||||||
.get::<usize>(index - lam_cnt)
|
.get::<usize>(index - lam_cnt - 1)
|
||||||
.cloned()
|
.cloned()
|
||||||
.map_or(Term::Var(name), |v| this.discharge_value(v))
|
.map_or(Term::Var(name), |v| this.discharge_value(v))
|
||||||
}
|
}
|
||||||
|
@ -262,7 +262,7 @@ impl Machine {
|
||||||
|
|
||||||
fn lookup_var(&mut self, name: NamedDeBruijn) -> Result<Value, Error> {
|
fn lookup_var(&mut self, name: NamedDeBruijn) -> Result<Value, Error> {
|
||||||
self.env
|
self.env
|
||||||
.get::<usize>(name.index.into())
|
.get::<usize>(usize::from(name.index) - 1)
|
||||||
.cloned()
|
.cloned()
|
||||||
.ok_or(Error::OpenTermEvaluated(Term::Var(name)))
|
.ok_or(Error::OpenTermEvaluated(Term::Var(name)))
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue