3
我想在Emacs Lisp中创建一对点变量。但我能找到的唯一办法似乎很难实施。作为一个简单的例子:Emacs虚线对语法改进
(let ((width (calculate-width)
(height (calculate-height))
`(,width . ,height))
这反引号,双所享有的语法气味给我,但我无法找到一个更合适的方法和我的谷歌福失败了我。
当值是变量时,是否有更好的方法来构造一个虚线对?
(为了清楚起见,它必须是一个点对直名单不会做。)
我知道我在做硬盘的方式,但是我不知道这个缺点是否会接受一个非列表作为第二个参数。这很完美,谢谢! – 2013-03-27 14:44:47
@KrisJenkins Cons cell可以在第一个和第二个组件中都存储任何东西。列表仅仅是cons单元的特例,即cons单元,其第二个元素是另一个cons单元,第二个元素又是另一个cons单元,依此类推。 “(foo bar baz)”与“'(foo。(bar。(baz。nil)))''非常相似。这种洞察力对于理解“cons”,“car”,“cdr”和所有其他Lisp列表函数的含义至关重要。 – lunaryorn 2013-03-28 11:29:11
谢谢。 Clojure是我的第一个Lisp,所以我从它的缺点实现中获得了一些期望,其中第二个参数必须是一个序列。 – 2013-03-28 16:42:24