[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."