From b1047c3b422f5280a9de6c56b1ba77e5dbc185ee Mon Sep 17 00:00:00 2001 From: Nicolas Petton Date: Tue, 30 Jun 2015 18:29:32 +0200 Subject: [PATCH] Add seq-min and seq-max Bump version number. * lisp/emacs-lisp/seq.el (seq-min, seq-max): New functions. * test/automated/seq-tests.el: Add tests for seq-min and seq-max. --- lisp/emacs-lisp/seq.el | 12 +++++++++++- test/automated/seq-tests.el | 5 +++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/lisp/emacs-lisp/seq.el b/lisp/emacs-lisp/seq.el index 2d20de61711..68d40b99f70 100644 --- a/lisp/emacs-lisp/seq.el +++ b/lisp/emacs-lisp/seq.el @@ -4,7 +4,7 @@ ;; Author: Nicolas Petton ;; Keywords: sequences -;; Version: 1.7 +;; Version: 1.8 ;; Package: seq ;; Maintainer: emacs-devel@gnu.org @@ -325,6 +325,16 @@ TYPE can be one of the following symbols: vector, string or list." (`list (append seq nil)) (_ (error "Not a sequence type name: %S" type)))) +(defun seq-min (seq) + "Return the smallest element of SEQ. +SEQ must be a sequence of numbers or markers." + (apply #'min (seq-into seq 'list))) + +(defun seq-max (seq) + "Return the largest element of SEQ. +SEQ must be a sequence of numbers or markers." + (apply #'max (seq-into seq 'list))) + (defun seq--drop-list (list n) "Return a list from LIST without its first N elements. This is an optimization for lists in `seq-drop'." diff --git a/test/automated/seq-tests.el b/test/automated/seq-tests.el index ab46eb85f76..3643ce53cb0 100644 --- a/test/automated/seq-tests.el +++ b/test/automated/seq-tests.el @@ -297,5 +297,10 @@ Evaluate BODY for each created sequence. (should (null b)) (should (null c))))) +(ert-deftest test-seq-min-max () + (with-test-sequences (seq '(4 5 3 2 0 4)) + (should (= (seq-min seq) 0)) + (should (= (seq-max seq) 5)))) + (provide 'seq-tests) ;;; seq-tests.el ends here -- 2.11.4.GIT