From 15417f67c4a818173c13d6e413bf8984bc04d347 Mon Sep 17 00:00:00 2001 From: Eric Schulte Date: Sun, 20 Nov 2011 09:38:54 -0700 Subject: [PATCH] Added a less functional Org-mode copy of the cl reduce function. * lisp/org.el (org-reduce): Added a less functional Org-mode copy of the cl reduce function. --- lisp/org.el | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lisp/org.el b/lisp/org.el index 5d5288476..18e2927fe 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -19660,6 +19660,18 @@ Taken from `count' in cl-seq.el with all keyword arguments removed." (if (funcall predicate e) (push e res))) (nreverse res))) +(defun org-reduce (cl-func cl-seq &rest cl-keys) + "Reduce two-argument FUNCTION across SEQ. +Taken from `reduce' in cl-seq.el with all keyword arguments but +\":initial-value\" removed." + (let ((cl-accum (cond ((memq :initial-value cl-keys) + (cadr (memq :initial-value cl-keys))) + (cl-seq (pop cl-seq)) + (t (funcall cl-func))))) + (while cl-seq + (setq cl-accum (funcall cl-func cl-accum (pop cl-seq)))) + cl-accum)) + (defun org-back-over-empty-lines () "Move backwards over whitespace, to the beginning of the first empty line. Returns the number of empty lines passed."