【问题标题】:Range data type or generator in Emacs Lisp (elisp)?Emacs Lisp(elisp)中的范围数据类型或生成器?
【发布时间】:2013-02-22 00:45:05
【问题描述】:

Python 的 range(start, end, [step]) 的 elisp 等价物是什么?

【问题讨论】:

    标签: elisp range


    【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 2017-02-06
      • 1970-01-01
      • 1970-01-01
      • 2017-05-27
      • 1970-01-01
      • 1970-01-01
      • 2017-04-12
      • 1970-01-01
      • 2018-02-08
      相关资源
      最近更新 更多