gpt4 book ai didi

lisp - 将原子拆分成列表 lisp

转载 作者:太空宇宙 更新时间:2023-11-03 19:04:49 27 4
gpt4 key购买 nike

如果我有一个原子,例如“a4”,我需要能够将 1 添加到“4”部分以使其成为 a5,但是因为它被认为是一个字符串,所以这是不可能的,所以如果我可以拆分 (a4 ) 到 ((a)(4)) 中,然后我可以对 4 进行计算,然后将它们重新组合在一起...

但是,我不确定如何将原子拆分为原子单词的列表?这可能吗?

编辑:我目前正在使用普通的 lisp。我有一个字符串列表 (a3 d14 c2) 等,但我需要能够将它们中的每一个分开,将起始字母和它后面的数字分开。

最佳答案

来自 http://www.thefreedictionary.com/atom

Atom

[..] A part [..] considered to be an irreducible constituent of a specified system. [..]

我猜想这个定义是 McCarthy 在命名 Lisp 的原子时一直在想的。

因此,您要实现的目标是极其罕见的,而不是事物在(通用或任何)Lisp 中的一般工作方式。通常,您将独立的数据(例如您的 token 和数字)表示为两个不同的原子并将它们连接起来,例如使用缺点单元格:

(defvar *data* (cons "answer" 42))
*data*
;; => ("answer" . 42)

如果您希望将其打印为 answer42,那么您必须打印它:

(format t "~a~a" (car *data*) (cdr *data*))

你想要的操作将是这样的:

(defun inc-number (cell)
"Please give me a better name and describe here what I do"
(cons (car cell)
(inc (cdr cell))))

也就是说,当然可以实现你想要的:

使用 string您可以获得符号的字符串表示形式,使用 intern你可以(有点)达到相反的效果。在此期间,您可以随意操作字符串,包括拆分字符串、将其转换为数字等。

关于lisp - 将原子拆分成列表 lisp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34052633/

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