shithub: mc

Download patch

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)
+}