aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDrahflow <drahflow@gmx.de>2014-08-19 15:13:52 +0200
committerDrahflow <drahflow@gmx.de>2014-08-19 15:13:52 +0200
commitb2e0267e4ca3de13ff168f818776cb07d893f110 (patch)
tree3ce3fe3d5ac4636dab6db23969db39a8d53056af
parent9ad92648cb58f287cb34225512423154405fb97a (diff)
list .pop
-rw-r--r--elymas/lib/list.ey16
-rw-r--r--examples/working-loaded/list.test12
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