【发布时间】:2016-02-21 11:01:42
【问题描述】:
我正在尝试在 Common Lisp 上实现 XOR 链接列表,但我需要获取变量的地址才能对其执行任何按位运算。 有没有办法获取变量的内存地址,类似于python的id()函数?
【问题讨论】:
-
如果你需要像地址这样低级的东西,Common Lisp 不是合适的工具;但它是一个非常好的高级编程工具。为什么在 Lisp 中需要 XOR 链表?
-
在 Common Lisp 中,变量的地址没有什么意义。变量通常只是指向对象的指针。
-
垃圾收集可以移动东西,并且可以在实现需要时复制一些整体。因此,对于您正在尝试做的事情,没有可靠的地址感。
-
您可能会发现 unrolled linked list 在 Common Lisp 中更容易实现,并且具有许多相同的内存优势。
-
@BasileStarynkevitch 实际上,我只是为了这样做而尝试这样做。我很感兴趣这是否可以在 lisp 中实现,以及实现起来有多难。
标签: lisp common-lisp memory-address xor-linkedlist