gpt4 book ai didi

lisp - 临时编辑全局变量

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

<分区>

Possible Duplicate:
LISP - Global variable keep their old value after reinitialization

我目前正在使用 Lisp(使用 Common Lisp)做一些类(class)作业,并且无处可去解决我遇到的这个问题。

解释起来很棘手,但这里是..

情况:我有两个全局变量 p1 和 p2,它们是多项式表达式。我的任务是创建一个多项式计算器,目前进展顺利。

我将我的多项式元素保持为特定格式:3x^2 == ((x 2) 3),并且我创建了两个递归运行多项式元素列表的函数。

如果我想将 3x^2 和 2x^2 相加,答案将是 5x^2(或“((x 2) (3+2))”)。

我有第三个列表,即结果,每当计算/无法计算元素时都会附加到该列表。

问题:使用我可以加在一起的两个元素,我创建了一个临时变量以添加到结果中。但是,无论我做什么,全局变量都发生了变化。

我已经尝试过 let、lambda、各种函数等。我已经被困了几天了,非常感谢你能给我的任何帮助:)

这是我的意思的一个小例子:

(setf p1 '((x 2) 2))
;2x^2

(setf p2 '((x 2) 3))
;3x^2

(if (equal (first p1) (first p2))
(progn
(setf temp p1)
(setf (second temp) (+ (second p1) (second p2)))
(append-to-result temp)
(print p1)
(print temp)))

输出:

((x 2) 5)

((x 2) 5)

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