emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] master 082a702 3/4: Fix #33 Fix #24 Define seq-mapn


From: Artur Malabarba
Subject: [elpa] master 082a702 3/4: Fix #33 Fix #24 Define seq-mapn
Date: Sat, 31 Oct 2015 06:36:19 +0000

branch: master
commit 082a702f5a4a07bc10052befd7a2b20cc8a0cdb8
Author: Artur Malabarba <address@hidden>
Commit: Artur Malabarba <address@hidden>

    Fix #33 Fix #24 Define seq-mapn
---
 beacon.el |   19 ++++++++++++++++++-
 1 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/beacon.el b/beacon.el
index 9a9f816..63ebbae 100644
--- a/beacon.el
+++ b/beacon.el
@@ -5,7 +5,7 @@
 ;; Author: Artur Malabarba <address@hidden>
 ;; URL: https://github.com/Malabarba/beacon
 ;; Keywords: convenience
-;; Version: 0.5
+;; Version: 0.5.1
 ;; Package-Requires: ((seq "1.11"))
 
 ;; This program is free software; you can redistribute it and/or modify
@@ -39,6 +39,23 @@
 
 (require 'seq)
 (require 'faces)
+(unless (fboundp 'seq-mapn)
+  ;; This is for people who are on outdated Emacs snapshots. Will be
+  ;; deleted in a couple of weeks.
+  (defun seq-mapn (function sequence &rest sequences)
+    "Like `seq-map' but FUNCTION is mapped over all SEQUENCES.
+The arity of FUNCTION must match the number of SEQUENCES, and the
+mapping stops on the shortest sequence.
+Return a list of the results.
+
+\(fn FUNCTION SEQUENCES...)"
+    (let ((result nil)
+          (sequences (seq-map (lambda (s) (seq-into s 'list))
+                            (cons sequence sequences))))
+      (while (not (memq nil sequences))
+        (push (apply function (seq-map #'car sequences)) result)
+        (setq sequences (seq-map #'cdr sequences)))
+      (nreverse result))))
 
 (defgroup beacon nil
   "Customization group for beacon."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]