Что такое эквивалент elisp для Python range(start, end, [step])
?
Тип данных диапазона или генератор в Emacs Lisp (elisp)?
Ответ 1
number-sequence
похож на python range
, но его результат сильно отличается.
Например:
(number-sequence 5)
=> (5)
(number-sequence 1 5)
=> (1 2 3 4 5)
(number-sequence 1 5 2)
=> (1 3 5)
Я использую эту функцию, чтобы дать мне такой вывод из python range
:
(defun py-range (start &optional end step)
(unless end
(setq end start
start 0))
(number-sequence start (1- end) step))
Теперь все работает так, как ожидалось:
(py-range 5)
=> (0 1 2 3 4)
(py-range 1 5)
=> (1 2 3 4)
(py-range 1 5 2)
=> (1 3)
Ответ 2
(number-sequence FROM &optional TO INC)