gpt4 book ai didi

Common Lisp 中 Python 的 range() 类比

转载 作者:IT老高 更新时间:2023-10-28 22:06:49 27 4
gpt4 key购买 nike

如何在 Common Lisp 中创建一个连续数字的列表?

也就是说,在 Common Lisp 中,Python 的 range 函数等价于什么?

在 Python 中,range(2, 10, 2) 返回 [2, 4, 6, 8],第一个和最后一个参数是可选的。我找不到创建数字序列的惯用方法,尽管 Emacs Lisp 有 number-sequence

可以模拟范围using loop macro ,但我想知道生成具有起点和终点以及步骤的数字序列的公认方法。

相关:Analog of Python's range in Scheme

最佳答案

没有生成数字序列的内置方法,这样做的规范方法是执行以下操作之一:

  • 使用循环
  • 编写一个使用 loop
  • 的实用函数

一个示例实现是(这只接受从“低”到“高”的计数):

(defun range (max &key (min 0) (step 1))
(loop for n from min below max by step
collect n))

这允许您指定(可选)最小值和(可选)步长值。

生成奇数:(range 10 :min 1 :step 2)

关于Common Lisp 中 Python 的 range() 类比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13937520/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com