9得票2回答
闭包和动态作用域?

我认为我理解为什么在使用动态作用域的语言中允许闭包存在是危险的。也就是说,似乎你可以正确地关闭变量,但是当尝试读取它时,你只会得到全局堆栈顶部的值。如果其他函数在期间使用相同的名称,则可能很危险。 我是否忽略了其他微妙之处?

9得票2回答
Clojure的动态变量和绑定有什么实际用途?

我看了一下参考资料:http://clojure.org/vars#Vars%20and%20the%20Global%20Environment,http://clojuredocs.org/clojure_core/clojure.core/binding,以及clojure and ^:...

8得票2回答
Clojure动态绑定

我知道以下做法有很多问题。同时,鉴于我的stackoverflow声望只有23分,人们可能会认为我是一个正在学习编程的新手。但是,请容忍我,并且关注“我们如何做到这一点”,而不是“为什么要这样做/你不应该这样做”的方面。 我想要的是: (def dog (Dog. ...)) (def c...

7得票4回答
Emacs Lisp:为什么这个S表达式会引起无效函数错误?

这里需翻译的内容为:所涉及的S表达式是: (((lambda (b) (lambda (a) (+ b a))) 3) 5) 在我看来,这段代码应该评估为8。在其他Lisp方言中,如Racket,它确实可以评估为8,但在elisp中,它会抛出以下错误: Debugger e...

7得票2回答
Emacs Lisp中lexical-binding和defvar之间的奇怪交互作用

以下的Emacs Lisp文件是关于查看当Alice在她的init文件中使用一个词法绑定局部变量foo时会发生什么,而Bob在他的init文件中使用defvar定义了全局特殊变量foo,而Alice在不知道foo将变成特殊变量的情况下,借用了Bob的init文件代码的一部分到她自己的init文...

7得票2回答
为什么Perl 6核心设置中暂存功能无法正常工作?

我在查看内容时,在indir实现中看到了这个评论: sub indir(Str() $path, $what, :$test = <r w>) { my $newCWD := $*CWD.chdir($path,:$test); $newCWD // $newCW...