gpt4 book ai didi

functional-programming - LISP 全局列表变量

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

我是 LISP 的新手,这是我对它的全局变量的疑问。

我想做的是创建一个可以在结构中存储键值对的“列表”。这是我的示例代码:

(setq *x* '())

(acons 'apple 'fruit *x*)

*x*

(first *x*)

我希望我的输出看起来像,在我添加 (apple.fruit) 对之后,x 应该是 ((apple.fruit)),但这是我得到的(在加载上述代码时):

CL-USER> 
NIL
((APPLE . FRUIT))
NIL <--- this is still nil?
NIL

谁能帮我解决这个问题,因为我不确定为什么我不能给变量 x 添加值。

此外,我还有一个关于列表的问题:
有没有办法通过一个键来查找列表中的元素?
例如,对于上面的列表,我如何使用关键字apple找到它对应的值fruit

谢谢

最佳答案

函数acons没有副作用,即它不会修改 *x*

您必须setq 得到acons 的结果才能插入*x*:

(setq *x* (acons 'apple 'fruit *x*))

关于functional-programming - LISP 全局列表变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13004534/

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