lexical-scope

    2热度

    2回答

    最近版本的Emacs支持elisp代码中变量的词法绑定。是否也可以在词汇上重新定义函数?换句话说,Emacs Lisp有类似lexical-flet的东西吗?

    17热度

    2回答

    F#具有称为"Type extension"的功能,它使开发人员能够扩展现有类型。 有两种类型的分机:内部分机和可选分机。第一个类似于C#中的部分类型,第二个类似于方法扩展(但功能更强大)。 要使用内部扩展,我们应该把两个声明放到同一个文件中。在这种情况下,编译器会将两个定义合并为一个最终类型(即,这是一种类型的两个“部分”)。 的问题是,这两种类型有不同的成员和价值观不同的访问规则: // Sa

    2热度

    1回答

    的代码是这样的: int a = 1; auto f = [a] {return a;}; a = 100; std::cout << f() << endl; return 0; 我期望看到100作为结果。然而,在f中捕获时,a就像冻结。结果是1。 a更改时有没有办法保持a一致?

    5热度

    2回答

    所以我有这个问题,我必须找出使用两个不同的范围规则的输出。我知道使用词法范围的输出是a=3和b=1,但我很难通过动态范围确定输出。 注意:下面的代码示例使用C语法,但我们只是将其视为伪代码。 int a,b; int p() { int a, p; a = 0; b = 1; p = 2; return p; } void print() { pr

    1热度

    1回答

    我最近了解到R有词汇和动态范围可用,但默认情况下它使用词法范围。接下来的情况真的让我感到困惑: > x <- 1 > f <- function(y) { x + y } > f(5) # we expect 6 [1] 6 > x <- 10 > f(5) # shouldn't we again expect 6? [1] 15 不应该f使用环境下进行评价它定义,而不是它被称

    3热度

    1回答

    在Haskell词汇范围,在列表解析里,我可以绑定表达式每次迭代变量: [a | x <- xs, let a = x^2, a >= 25] 如何绑定词法变量在球拍的for理解? 目前,我有这样的代码: (define (euler4) (apply max (for*/list ([i (in-range 100 1000)] [j (in-rang

    1热度

    2回答

    我正在试图创建一个宏来创建一个函数,该函数在夹具的词汇上下文中使用S-expresions并对它们进行评估。这是我写的宏: (defmacro def-fixture (name bindings) "Return a function that takes the form to execute but is wrapped between a let of the bindings"

    32热度

    4回答

    这是一个延续这种原始的SO问题:Using "::" instead of "module ..." for Ruby namespacing 在原来的SO问题,这里是介绍我还在唔明场景: FOO = 123 module Foo FOO = 555 end module Foo class Bar def baz puts FOO e

    5热度

    1回答

    它是在一节“全局变量和常量的” Google Common Lisp Style Guide是的指出: “的Common Lisp没有全局词法变量,这样的命名约定来保证那些被动态绑定的全局变量从来没有与局部变量重叠的名称 伪造全局词法变量可能带有一个不同名称的全局变量和一个DEFINE-SYMBOL-MACRO你不应该使用这个技巧,除非你第一次发布一个将它抽象出来的图书馆。“ 请有人能帮我理解最后

    2热度

    1回答

    如何预测Ruby如何解析事物? 在尝试连接字符串时,我遇到了一个非常令人惊讶的Ruby解析错误。 > "every".capitalize +"thing" => NoMethodError: undefined method `[email protected]' for "thing":String 当然,如果你把额外的空间在他们的,它按预期工作;如果我有anything.any_met