Range data type or generator in Emacs Lisp (elisp)?
elisp, range
Solution
`number-sequence` is similar to python's `range` but its output is quite different. For example:
(number-sequence 5)
=> (5)
(number-sequence 1 5)
=> (1 2 3 4 5)
(number-sequence 1 5 2)
=> (1 3 5)
I use this function to give me an output like that from python's `range`:
(defun py-range (start &optional end step)
(unless end
(setq end start
start 0))
(number-sequence start (1- end) step))
Now everything works as expected:
(py-range 5)
=> (0 1 2 3 4)
(py-range 1 5)
=> (1 2 3 4)
(py-range 1 5 2)
=> (1 3)
Problem
What is elisp's equivalent for Python's `range(start, end, [step])`?