小编Kev*_*vin的帖子

为什么一些Vim映射包括结肠后的<CU>?

我试图弄清楚映射命令的语法,比如onoremap,在vim中.

特别是,我对手册中的这一行感到困惑,关于使用<C-U>:

CTRL-U(<C-U>)用于删除Vim可能插入的范围.

有人可以解释一下吗?

syntax vim

27
推荐指数
1
解决办法
3720
查看次数

词汇与动态范围在SICP的环境评估模型方面

在SICP的3.2.2节中执行以下代码

(define (square x)
  (* x x))
(define (sum-of-squares x y)
  (+ (square x) (square y)))
(define (f a)
  (sum-of-squares (+ a 1) (* a 2)))

(f 5)
Run Code Online (Sandbox Code Playgroud)

根据该图解释.

每次应用函数时,都会创建一个新帧(标记为E1through E4),表示符号和值之间的一组绑定.当符号未绑定在框架中时,将查询该框架的封闭环境以查找该特定符号的绑定.

该图的有趣之处在于标记的所有帧E都包含在全局环境中.该文本解释说这是因为函数是在全局环境中定义的,但没有详细说明问题:

请注意,每个帧都由square指向全局环境创建,因为这是square过程对象指示的环境.

相反,如果框架包含在调用函数的环境中,比如E3包含在E2其中E1,那么它是否是动态作用域语言如何工作的有效模型?此外,图中的框架具有相同的"父"环境的方式是因为Scheme是词法范围的吗?

scheme sicp dynamic-scope lexical-scope

11
推荐指数
1
解决办法
1228
查看次数

标签 统计

dynamic-scope ×1

lexical-scope ×1

scheme ×1

sicp ×1

syntax ×1

vim ×1