Some refactoring
[jscl.git] / src / utils.lisp
index 5cb702c..d380e4c 100644 (file)
   (let ((key-val (if key (funcall key y) y))
         (fn (if test-not-p (complement test-not) test)))
     (funcall fn x key-val)))
+
+
+(defun interleave (list element &optional after-last-p)
+  (unless (null list)
+    (with-collect
+      (collect (car list))
+      (dolist (x (cdr list))
+        (collect element)
+        (collect x))
+      (when after-last-p
+        (collect element)))))