amend another bug

This commit is contained in:
2024-07-18 22:41:54 +01:00
parent bd8edc3bf4
commit 120a84fd28

View File

@@ -199,10 +199,14 @@ struct
local local
fun forwardLinearSearch (findNum, idx, lines) = fun forwardLinearSearch (findNum, idx, lines) =
if idx = Vector.length lines then if idx = Vector.length lines then
idx let val _ = print "203\n"
in idx
end
else else
let let
val _ = print "before curval\n"
val curVal = Vector.sub (lines, idx) val curVal = Vector.sub (lines, idx)
val _ = print (Int.toString curVal ^ "\n")
in in
if curVal > findNum then idx if curVal > findNum then idx
else forwardLinearSearch (findNum, idx + 1, lines) else forwardLinearSearch (findNum, idx + 1, lines)
@@ -215,6 +219,7 @@ struct
if high >= low then if high >= low then
let let
val midVal = Vector.sub (lines, mid) val midVal = Vector.sub (lines, mid)
val _ = print "218\n"
in in
if midVal = findNum then if midVal = findNum then
mid mid
@@ -224,7 +229,9 @@ struct
helpBinSearch (findNum, lines, low, mid - 1) helpBinSearch (findNum, lines, low, mid - 1)
end end
else else
forwardLinearSearch (findNum, mid, lines) let val _ = print "229\n"
in if mid >= 0 then forwardLinearSearch (findNum, mid, lines) else 0
end
end end
in in
fun forwardBinSearch (findNum, lines) = fun forwardBinSearch (findNum, lines) =
@@ -1090,16 +1097,14 @@ struct
val _ = println "996" val _ = println "996"
val lineDeleteEnd = binSearch val lineDeleteEnd = binSearch
(String.size newStr - 1, rightLinesHd) (String.size newStr - 1, rightLinesHd)
val lineDeleteStart = Vector.length rightLinesHd - lineDeleteEnd val lineDeleteStart =
Vector.length rightLinesHd - lineDeleteEnd
val lineDeleteLength = lineDeleteEnd - lineDeleteStart val lineDeleteLength = lineDeleteEnd - lineDeleteStart
in in
if lineDeleteEnd >= 0 then if lineDeleteEnd >= 0 then
Vector.tabulate Vector.tabulate (lineDeleteLength + 1, fn idx =>
( lineDeleteLength + 1 Vector.sub (rightLinesHd, idx + lineDeleteStart)
, fn idx => - newStrStart)
Vector.sub (rightLinesHd, idx + lineDeleteStart)
- newStrStart
)
else else
(* Subtract by difference in length, which is same as (* Subtract by difference in length, which is same as
* newStrStart. *) * newStrStart. *)
@@ -1342,32 +1347,35 @@ struct
val sub1LineEnd = binSearch val sub1LineEnd = binSearch
(String.size sub1 - 1, rightLinesHd) (String.size sub1 - 1, rightLinesHd)
val sub1Lines = val sub1Lines =
if sub1LineEnd < 0 orelse Vector.length rightLinesHd = 0 if sub1LineEnd < 0 orelse Vector.length rightLinesHd = 0 then
then Vector.fromList [] Vector.fromList []
else else
let let
val _ = println "1224" val _ = println "1224"
val _ = println ("vlen = " ^ Int.toString val _ = println
(Vector.length rightLinesHd)) ("vlen = " ^ Int.toString (Vector.length rightLinesHd))
val _ = println ("sub1LineEnd = " ^ Int.toString sub1LineEnd) val _ = println
val slice = VectorSlice.slice ("sub1LineEnd = " ^ Int.toString sub1LineEnd)
val slice = VectorSlice.slice
(rightLinesHd, 0, SOME (sub1LineEnd + 1)) (rightLinesHd, 0, SOME (sub1LineEnd + 1))
in in
VectorSlice.vector slice VectorSlice.vector slice
end end
val _ = println "1356" val _ = println "1356"
val sub2Start = finish - curIdx val sub2Start = finish - curIdx
val sub2 = String.substring val sub2 = String.substring
( rightStringsHd ( rightStringsHd
, sub2Start , sub2Start
, String.size rightStringsHd - sub2Start , String.size rightStringsHd - sub2Start
) )
val _ = println "1366"
val sub2LineStart = forwardBinSearch (sub2Start, rightLinesHd) val sub2LineStart = forwardBinSearch (sub2Start, rightLinesHd)
val _ = println "1368"
val sub2Lines = val sub2Lines =
if sub2LineStart < Vector.length rightLinesHd then if sub2LineStart < Vector.length rightLinesHd then
let let
val _ = println "1242" val _ = println "1370"
in in
Vector.tabulate Vector.tabulate
( Vector.length rightLinesHd - sub2LineStart ( Vector.length rightLinesHd - sub2LineStart
@@ -1396,8 +1404,8 @@ struct
val str = String.substring (rightStringsHd, 0, strLength) val str = String.substring (rightStringsHd, 0, strLength)
val midpoint = binSearch (String.size str - 1, rightLinesHd) val midpoint = binSearch (String.size str - 1, rightLinesHd)
val newLeftLines = val newLeftLines =
if midpoint < 0 orelse Vector.length rightLinesHd = 0 if midpoint < 0 orelse Vector.length rightLinesHd = 0 then
then Vector.fromList [] Vector.fromList []
else else
let let
val _ = println "1390" val _ = println "1390"