small change similar to previous commit: in search-list.sml's 'backtrackFull' function, always check if the position is at the correct string before checking if we are at the place where the search should continue
This commit is contained in:
@@ -5,11 +5,7 @@ struct
|
|||||||
val empty = Vector.fromList []
|
val empty = Vector.fromList []
|
||||||
|
|
||||||
fun backtrackFull (pos, hd, absIdx, tl, acc, searchPos, searchString, prevTl) =
|
fun backtrackFull (pos, hd, absIdx, tl, acc, searchPos, searchString, prevTl) =
|
||||||
if searchPos <= 1 then
|
if pos < 0 then
|
||||||
(* we are trying to backtrack to index 1,
|
|
||||||
* and then continue are search from here *)
|
|
||||||
loopSearch (pos, hd, absIdx, tl, acc, 0, searchString, prevTl)
|
|
||||||
else if pos < 0 then
|
|
||||||
case prevTl of
|
case prevTl of
|
||||||
prevHd :: prevTl =>
|
prevHd :: prevTl =>
|
||||||
let
|
let
|
||||||
@@ -29,6 +25,10 @@ struct
|
|||||||
| [] =>
|
| [] =>
|
||||||
(* Should never be called *)
|
(* Should never be called *)
|
||||||
raise Fail "SearchList.backtrackFull error: line 24\n"
|
raise Fail "SearchList.backtrackFull error: line 24\n"
|
||||||
|
else if searchPos <= 1 then
|
||||||
|
(* we are trying to backtrack to index 1,
|
||||||
|
* and then continue are search from here *)
|
||||||
|
loopSearch (pos, hd, absIdx, tl, acc, 0, searchString, prevTl)
|
||||||
else
|
else
|
||||||
backtrackFull
|
backtrackFull
|
||||||
(pos - 1, hd, absIdx - 1, tl, acc, searchPos - 1, searchString, prevTl)
|
(pos - 1, hd, absIdx - 1, tl, acc, searchPos - 1, searchString, prevTl)
|
||||||
|
|||||||
Reference in New Issue
Block a user