ref: 5864693bba33898265ae04f27d6e5c58af9b5590
parent: 120dc534b06fd3f9611fd15b0de76ccaa5eeb53b
author: Ori Bernstein <[email protected]>
date: Fri Nov 20 06:02:37 EST 2015
Add slpop() to mirror slpush()
--- a/lib/std/bld.sub
+++ b/lib/std/bld.sub
@@ -46,6 +46,7 @@
sleq.myr
slfill.myr
sljoin.myr
+ slpop.myr
slpush.myr
slput.myr
slurp.myr
--- /dev/null
+++ b/lib/std/slpop.myr
@@ -1,0 +1,14 @@
+use "types.use"
+use "alloc.use"
+
+pkg std =
+ generic slpop : (sl : @a[:] -> (@a, @a[:]))
+;;
+
+generic slpop = {sl
+ var elt
+
+ elt = sl[$ - 1]
+ sl = slgrow(sl, sl.len - 1)
+ -> (elt, sl)
+}