gpt4 book ai didi

common-lisp - Common Lisp中的Python enumerate()模拟

转载 作者:行者123 更新时间:2023-12-04 02:39:25 26 4
gpt4 key购买 nike

我想映射一个列表,但要跟踪列表中的元素索引。

在Python中,我可以执行以下操作:

map(lambda (idx, elt): "Elt {0}: {1}".format(idx, elt), enumerate(mylist))

我正在尝试将其翻译为以下内容:
(mapcar-something (lambda (elt idx) (format nil "Elt ~D: ~S" idx elt))
'(a b c d))

预期结果:
("Elt 0: A" "Elt 1: B" "Elt 2: C" "Elt 3: D")

但是我找不到我应该使用的mapcar-something函数。我是否需要自己实现(也许通过循环)?

最佳答案

CL-USER 25 > (defun iota (n)
(loop for i below n collect i))
IOTA

CL-USER 26 > (iota 4)
(0 1 2 3)

CL-USER 27 > (mapcar (lambda (elt idx)
(format nil "Elt ~D: ~S" idx elt))
'(a b c d)
(iota 4))
("Elt 0: A" "Elt 1: B" "Elt 2: C" "Elt 3: D")

或者
CL-USER 28 > (loop for elt in '(a b c d) and idx from 0
collect (format nil "Elt ~D: ~S" idx elt))
("Elt 0: A" "Elt 1: B" "Elt 2: C" "Elt 3: D")

关于common-lisp - Common Lisp中的Python enumerate()模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37139310/

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