# HG changeset patch # User Kenichi Handa # Date 1049337791 0 # Node ID b040b4e36f5e6aa92e8e4789638211b1714173aa # Parent 959a145fa4cdf4f408fe3b64c52ec63a130975fb (number-sequence): New function. diff -r 959a145fa4cd -r b040b4e36f5e lisp/subr.el --- a/lisp/subr.el Thu Apr 03 01:59:08 2003 +0000 +++ b/lisp/subr.el Thu Apr 03 02:43:11 2003 +0000 @@ -176,6 +176,22 @@ (if (> n 0) (setcdr (nthcdr (- (1- m) n) x) nil)) x)))) +(defun number-sequence (from &optional to) + "Return a sequence of numbers from FROM to TO (both inclusive) as a list. +The Nth element of the list is (+ FROM N) where N counts from zero. +If TO is nil, it defaults to FROM. +If TO is less than FROM, the value is nil." + (if to + (if (< to from) + (setq to (1- from))) + (setq to from)) + (let* ((list (make-list (- (1+ to) from) from)) + (tail (cdr list))) + (while tail + (setcar tail (setq from (1+ from))) + (setq tail (cdr tail))) + list)) + (defun remove (elt seq) "Return a copy of SEQ with all occurrences of ELT removed. SEQ must be a list, vector, or string. The comparison is done with `equal'."