什么是elisp相当于Python的range(start, end, [step])?
mic*_*ohn 18
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)
Run Code Online (Sandbox Code Playgroud)
我使用这个函数给我一个类似于python的输出range:
(defun py-range (start &optional end step)
(unless end
(setq end start
start 0))
(number-sequence start (1- end) step))
Run Code Online (Sandbox Code Playgroud)
现在一切都按预期工作:
(py-range 5)
=> (0 1 2 3 4)
(py-range 1 5)
=> (1 2 3 4)
(py-range 1 5 2)
=> (1 3)
Run Code Online (Sandbox Code Playgroud)