amend another bug
This commit is contained in:
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user