diff options
| -rw-r--r-- | elymas/lib/list.ey | 16 | ||||
| -rw-r--r-- | examples/working-loaded/list.test | 12 |
2 files changed, 27 insertions, 1 deletions
diff --git a/elymas/lib/list.ey b/elymas/lib/list.ey index 38af5ac..b1309a2 100644 --- a/elymas/lib/list.ey +++ b/elymas/lib/list.ey @@ -59,7 +59,21 @@ l .len 1 add l .setLen } /append1 defmd - { { .append1 }_ [ 0 ] [ ] '' * } /append defmd + { ==l + l .len 2 ge { + l .start + l .len _ 1 sub l .setLen + 2 sub { 1 -01 * } rep + _ l .setEnd + NONE 1 -102 =[] + } { + 0 l .setLen + NONE l .setStart + NONE l .setEnd + } ? * + } /pop defmd + + { { .append1 }_ '0. * } /append defmd { < 0 ==len { =len } =*setLen diff --git a/examples/working-loaded/list.test b/examples/working-loaded/list.test index 2d07e50..ec78135 100644 --- a/examples/working-loaded/list.test +++ b/examples/working-loaded/list.test @@ -25,3 +25,15 @@ list _ [ 3 4 5 ] -01 .append a dump a len dump a |dump each + +a .pop + +a dump +a len dump +a |dump each + +42 a .append + +a dump +a len dump +a |dump each |
