相关疑难解决方法(0)

lisp中的变量引用

另一个新手(Common)LISP问题:

基本上在大多数编程语言中,函数接受变量的引用而不仅仅是值,即通过引用传递而不是传递值.让我们说,为了简单起见,我想编写一个LISP函数来接收变量并将变量的值增加一:

(defun increase-by-one (var)
  (setf var (+ var 1)))
Run Code Online (Sandbox Code Playgroud)

现在显然问题是这个函数只增加了堆栈上变量副本的值,而不是实际的原始变量.我也试图通过使用宏来取得成效,虽然我有这种感觉,使用宏是正确的方法.

我在LISP中一直打到这堵墙,我确信必须有办法解决这个问题,或者在LISP中我有没有想过这个问题的方法完全不同?这样的事情是如何在LISP中完成的?

编辑:多人建议使用incf.我只用这个例子以简单的方式演示问题,我实际上并没有寻找重新实现incf.但无论如何,谢谢你的建议.

lisp common-lisp

26
推荐指数
3
解决办法
1万
查看次数

标签 统计

common-lisp ×1

lisp ×1