【发布时间】:2010-09-09 22:21:49
【问题描述】:
lisp 中的列表是一系列 cons 单元格,但在 Tcl 中,列表是用空格分隔元素的字符串。要将代码从 lisp 转换为 tcl,可以简单地将 lisp 列表转换为 Tcl 列表。但是,这会遇到副作用,因为 cons 单元不会出现在 Tcl 代码中。例如,考虑 lisp 中的这段代码:
(setq a (list 1 2 3 4))
(let ((b a)
(a (cddr a)))
(declare (special a b))
(setf (cadr b) ‘b)
(setf (cadr a) ‘d)
(print a))
(print a)
;; Results in:
(3 d)
(1 b 3 d)
是否有一个 Tcl 包可以更好地模拟 Tcl 中的 lisp 列表?这样的包是否可以轻松转换为常规 Tcl 列表?
上面的代码在 Tcl 中使用这样的包会是什么样子?
【问题讨论】:
-
我从这里开始:wiki.tcl.tk/2634
标签: lisp tcl dynamic-scope