Tương đương với elisp của Python là range(start, end, [step])
là gì?Loại dữ liệu hoặc trình tạo trong Emacs Lisp (elisp)?
10
A
Trả lời
11
number-sequence
tương tự như python's range
nhưng đầu ra của nó khá khác nhau. Ví dụ:
(number-sequence 5)
=> (5)
(number-sequence 1 5)
=> (1 2 3 4 5)
(number-sequence 1 5 2)
=> (1 3 5)
tôi sử dụng chức năng này để cung cấp cho tôi một đầu ra như thế từ python của range
:
(defun py-range (start &optional end step)
(unless end
(setq end start
start 0))
(number-sequence start (1- end) step))
Bây giờ mọi thứ hoạt động như mong đợi:
(py-range 5)
=> (0 1 2 3 4)
(py-range 1 5)
=> (1 2 3 4)
(py-range 1 5 2)
=> (1 3)
7
(number-sequence FROM &optional TO INC)
Cảm ơn các cụ cao và phản ứng thực tế! – mcandre