|
|
7b05490812
|
progress implementing 'PersistentVector.merge' for case where left subtree and right subtree have same depth
|
2026-01-18 06:40:22 +00:00 |
|
|
|
66d672505a
|
fix calculation of number to decrement by in 'PersistentVector.delete', after additional test showed that calculation resulted in incorrect metadata. (Todo: just implement function to merge left and right subtrees.)
|
2026-01-18 00:27:03 +00:00 |
|
|
|
83bb852ae2
|
add another test for 'PersistentVector.delete
|
2026-01-17 23:45:20 +00:00 |
|
|
|
1c947eab7d
|
add a test for 'PersistentVector.delete' (even though the 'PersistentVector.merge' helper function is unimplemented)
|
2026-01-17 23:27:36 +00:00 |
|
|
|
ee58556bde
|
progress implementing 'PersistentVector.delete'. (Todo: implement function to merge left and right vectors.)
|
2026-01-17 23:14:05 +00:00 |
|
|
|
b84713a98e
|
add 'PersistentVector.countDepth' function, which is meant to count the depth, and is to be used for deletion
|
2026-01-17 22:51:06 +00:00 |
|
|
|
4280f580a2
|
add function to decrement persistent-vector.sml. (The plan is to split the left and right, and then decrement the right metadata so that the absolute indices match.)
|
2026-01-17 22:46:08 +00:00 |
|
|
|
98ec1fbee6
|
fix another size-recalculation mistake in 'PersistentVector.splitRight' function. (When we are splitting in the middle of a BRANCH, we want to subtract the old child size from the remainder, and then add the new child size to the remainder, because this calculation will account for the splitting of preceding elements.)
|
2026-01-16 22:40:38 +00:00 |
|
|
|
e52d4856ee
|
amend recalculation of size metadata in 'PersistentVector.splitRIght: we always want to decrement by prevSize in this function. (We will have another function call to decrement so that left split and right split represent the same absolute indices when they are joined, before they are split.)
|
2026-01-16 22:31:43 +00:00 |
|
|
|
ddcb0ea56d
|
finish initial implementation for 'PersistentVector.splitRight'
|
2026-01-16 22:16:44 +00:00 |
|
|
|
eb316d7be2
|
begin implementation of PersistentVector.splitRight function
|
2026-01-16 21:58:59 +00:00 |
|
|
|
2058a57026
|
add functions for testing persistent-vector.sml
|
2026-01-15 07:16:04 +00:00 |
|
|
|
559b254b0c
|
initial implementation of 'PersistentVector.splitLeft' function
|
2026-01-15 06:13:38 +00:00 |
|
|
|
79fda65f78
|
begin coding 'PersistentVector.splitLeft' function
|
2026-01-15 05:51:22 +00:00 |
|
|
|
267c0c5d96
|
change persistent-vector.sml's 'prevMatch' function to use rope-like metadata, and remove dead code
|
2026-01-15 05:39:55 +00:00 |
|
|
|
d6da7a3ea3
|
persistent-vector.sml was in a partial state where some functions use rope-like metadata and some functions do not, so change 'nextMatch' function to use rope-like metatadata (still need to change other functions)
|
2026-01-15 05:25:17 +00:00 |
|
|
|
1330bcdff9
|
add a couple of more tests, and revert persistent-vector.sml to how it was before adding rope-like metadata
|
2025-12-12 10:30:21 +00:00 |
|
|
|
2f2d530dae
|
fix calculation for delete function (we needed to fix the calculation of how much to decrement by)
|
2025-12-09 13:10:23 +00:00 |
|
|
|
7a5aca7bf2
|
add function in persistent-vector.sml to insert
|
2025-12-09 12:33:06 +00:00 |
|
|
|
e6bda83309
|
begin adding tests for persistent-vector.sml, and add bug fix to 'PersistentVector.delete' in light of one of the tests. (We were decrementing by the wrong value previously, but I fixed it and added a comment of how we arrive at the value we want to decrement by
|
2025-12-09 11:42:30 +00:00 |
|
|
|
51bce52ea4
|
add from/toList conversion functions for testing persistent-vector.sml
|
2025-12-09 10:44:43 +00:00 |
|
|
|
cd8958cced
|
implement a function to delete from persistent-vector.sml
|
2025-12-09 10:31:31 +00:00 |
|
|
|
69fcbfc35d
|
add function to decrement indices in persistent-vector.sml
|
2025-12-09 10:07:46 +00:00 |
|
|
|
d52c350a90
|
formatting for persistent-vector.sml (absolutely no changes other than formatting)
|
2025-12-08 22:40:38 +00:00 |
|
|
|
2ba18a38b0
|
entirely done with first pass implementing persistent-vector.sml's 'prependJoin' helper function.
|
2025-12-08 22:37:13 +00:00 |
|
|
|
0c668c9f14
|
almost done implementing persistent-vector.sml's 'prependJoin' helper function. (BRANCH case is fully implemented, but I need to implement the LEAF case next.)
|
2025-12-08 22:23:01 +00:00 |
|
|
|
b6cad904f9
|
implement function to join when left has greater depth than right. (I need to implement a function to join when right is greater than left though.
|
2025-12-08 10:57:00 +00:00 |
|
|
|
3aab8698ed
|
begin coding function to join two 'PersistentVector.t's.
|
2025-12-07 04:12:39 +00:00 |
|
|
|
0650b372b2
|
complete first pass of implementing 'splitRight' in persistent-vector.sml
|
2025-12-07 03:43:15 +00:00 |
|
|
|
3318501c00
|
in persistent-vector.sml's 'splitRight' function, make sure we decrement the remaining size table that remains after the split.
|
2025-12-07 03:22:38 +00:00 |
|
|
|
470d36f82b
|
delete insert function and helper functions in persistent-vector.sml, due to a simpler approach: for insertion, we will split the vector into left and right halves, then append the new element to the left half, then concat both halves together again. This is similar to the approach for RRB trees.
|
2025-12-06 02:19:42 +00:00 |
|
|
|
ca5baf8fd7
|
progress with ''helpInset' function in persistent-vector.sml: BRANCH case is fully implemented, and need to impelement LEAF case next
|
2025-12-06 00:28:29 +00:00 |
|
|
|
db459d59ad
|
progress reimplementing 'helpInsert' in persistent-vector.sml by adding a helper function for creating a vector when the current node is split
|
2025-12-05 18:53:02 +00:00 |
|
|
|
1f5cf157b1
|
progress reimplementing 'helpInsert' so that it is aware of rope-like metadata
|
2025-12-05 13:32:16 +00:00 |
|
|
|
343951948c
|
begin reimplementing persistent-vector.sml's 'helpInsert' function so that it uses rope-like metadata
|
2025-12-05 10:11:06 +00:00 |
|
|
|
237d9f8a38
|
formatting for fcore/persistent-vector.sml
|
2025-12-03 11:06:08 +00:00 |
|
|
|
0625c33bec
|
modify next/prev match functions to index using rope-like metadata
|
2025-12-03 11:00:02 +00:00 |
|
|
|
22aa18699e
|
modify PersistentVector.nextMatch and relevant functions so that they index using the roles of rope-like metadata
|
2025-12-03 10:18:44 +00:00 |
|
|
|
fde27123cf
|
begin adjusting persistent-vector.sml so that it uses rope-like metadata, meaning relative index offsets to support efficient arbitrary insertion/deletion
|
2025-12-02 08:53:23 +00:00 |
|
|
|
6fba536f6f
|
when insert forces persistent-vector.sml to split, distribute half of nodes to left side and half of nodes to right side. (We avoid repeated tiny vectors this way, which reduces tree height and maintains balance.)
|
2025-12-01 14:24:41 +00:00 |
|
|
|
328a4e76f1
|
done implementing 'helpInsert' (both leaf and branch caases)for persistent-vector.sml
|
2025-12-01 13:51:12 +00:00 |
|
|
|
17fdeff9ae
|
almost done implementing 'helpInsert' for LEAF case of persistent-vector.sml
|
2025-12-01 13:40:53 +00:00 |
|
|
|
94a3d8eeb4
|
done implementing 'helpInsert' for BRANCH case (need to imlement the LEAF case next)
|
2025-12-01 13:09:46 +00:00 |
|
|
|
780aefae34
|
begin implementing function to insert into PersistentVector.t
|
2025-12-01 12:24:45 +00:00 |
|
|
|
70215fbc0a
|
done implementing functionality to get PersistentVector.prevMatch working. We use the call stack to try the node at the previous index if we receive an invalid state from the recursive call.
|
2025-10-08 11:10:06 +01:00 |
|
|
|
088c5c3d98
|
checkpoint while implementing prevMatch functionality
|
2025-10-08 10:39:49 +01:00 |
|
|
|
0de7a9278a
|
progress implementing help-prev-match for vector
|
2025-10-08 10:27:19 +01:00 |
|
|
|
3b823d7ae6
|
delete 'nextMatch' function in search-list.sml, and refactor other code to use alternative function
|
2025-10-08 08:16:20 +01:00 |
|
|
|
8941ce9f89
|
reimplement functionality to search forwards using 'n' command
|
2025-10-08 08:10:51 +01:00 |
|
|
|
8f49cdca13
|
fix type errors in normal-mode-text-builder.sml
|
2025-09-29 14:55:20 +01:00 |
|