Fixes #38237 Sort out stack/unstack/enstacken/disenstacken

This commit is contained in:
Simon Forman
2020-04-28 10:42:09 -07:00
parent fac2d2ae5f
commit 750f498512
4 changed files with 1379 additions and 400 deletions
+8 -8
View File
@@ -2417,7 +2417,7 @@
" left BTree-iter-order key value F right BTree-iter-order\n",
"\n",
"\n",
" [key value left right] disenstacken swap\n",
" [key value left right] unstack swap\n",
" key value left right swap\n",
" key value right left\n",
"\n",
@@ -2432,11 +2432,11 @@
"\n",
"So:\n",
"\n",
" R0 == disenstacken swap\n",
" R0 == unstack swap\n",
" R1 == [cons dipdd [F] dip] dupdip i\n",
"\n",
" [key value left right] R0 [BTree-iter-order] R1\n",
" [key value left right] disenstacken swap [BTree-iter-order] [cons dipdd [F] dip] dupdip i\n",
" [key value left right] unstack swap [BTree-iter-order] [cons dipdd [F] dip] dupdip i\n",
" key value right left [BTree-iter-order] [cons dipdd [F] dip] dupdip i\n",
"\n",
" key value right left [BTree-iter-order] cons dipdd [F] dip [BTree-iter-order] i\n",
@@ -2446,7 +2446,7 @@
" left BTree-iter-order key value F right BTree-iter-order\n",
"\n",
"\n",
" BTree-iter-order == [not] [pop] [disenstacken swap] [[cons dipdd [F] dip] dupdip i] genrec"
" BTree-iter-order == [not] [pop] [unstack swap] [[cons dipdd [F] dip] dupdip i] genrec"
]
},
{
@@ -2531,8 +2531,8 @@
"\n",
"We worked out one scheme for ?in-order? traversal above, but maybe we can do better?\n",
"\n",
" [key value left right] [F] [BTree-iter] [disenstacken] dipd\n",
" [key value left right] disenstacken [F] [BTree-iter]\n",
" [key value left right] [F] [BTree-iter] [unstack] dipd\n",
" [key value left right] unstack [F] [BTree-iter]\n",
" key value left right [F] [BTree-iter]\n",
"\n",
" key value left right [F] [BTree-iter] R1.1\n",
@@ -2543,8 +2543,8 @@
" key value left right [BTree-iter] [F] [BTree-iter] \n",
"\n",
"\n",
" [key value left right] [F] [BTree-iter] [disenstacken [roll>] dip] dipd\n",
" [key value left right] disenstacken [roll>] dip [F] [BTree-iter]\n",
" [key value left right] [F] [BTree-iter] [unstack [roll>] dip] dipd\n",
" [key value left right] unstack [roll>] dip [F] [BTree-iter]\n",
" key value left right [roll>] dip [F] [BTree-iter]\n",
" key value left roll> right [F] [BTree-iter]\n",
" left key value right [F] [BTree-iter]\n",