diff --git a/src/prolog/iterators.rs b/src/prolog/iterators.rs index 28da88e4..55087f54 100644 --- a/src/prolog/iterators.rs +++ b/src/prolog/iterators.rs @@ -92,6 +92,10 @@ fn is_partial_string<'a>( Term::Constant(_, Constant::EmptyList) => { return Some((string, None)); } + Term::Constant(_, Constant::String(tail)) => { + string += &tail; + return Some((string, None)); + } _ => { return None; } diff --git a/src/prolog/machine/system_calls.rs b/src/prolog/machine/system_calls.rs index 9554badb..47b36012 100644 --- a/src/prolog/machine/system_calls.rs +++ b/src/prolog/machine/system_calls.rs @@ -1164,6 +1164,9 @@ impl MachineState { return Ok(()); } } + Addr::Lis(h) => { + self.unify(Addr::HeapCell(h + 1), self[temp_v!(2)]); + } Addr::EmptyList => { self.fail = true; return Ok(());