请教一下关于词法作用域和动态作用域
lisp吧
全部回复
仅看楼主
level 8
我印象中Scheme只支持词法作用域,
CommonLisp默认支持词法作用域,然后也可以支持动态作用域
Elisp原来只支持动态作用域,2.4之后又加入了词法作用域
那么词法作用域和动态作用域之间最大的区别是什么呢?????
给个例子什么的解释一下吧,求强人指点[Love]
2012年10月28日 07点10分 1
level 10
newLisp是動態作用域
> (define n 1)
1
> (define (f) (begin (define n 3) n))
> (f)
3
> n
3
scheme
> (define n 1)
> (define (f)
(begin (define n 3) n))
> (f)
3
> n
1
個人覺得,動態作用域有點像全局變數,變量的作用範圍可以一層層的往上找,而詞法作用域有時只能在當前作用域内,也有的人叫「靜態作用域」,單純的動態作用域無法實現閉包

2012年10月29日 04点10分 2
level 10
我的無視吧,有篇博客
[背扭]blog.chinaunix.n[瞌睡]et/uid-24690947-id-2978442.ht[生日快乐]ml
2012年10月29日 04点10分 3
[抛媚眼]我仔细看看这东西好像很深奥的样子,
2012年10月29日 05点10分
回复 airica1 :只可意会的感觉[抖胸]
2012年10月29日 05点10分
level 8
@ljqican
我感觉动态作用域好像类似全局变量,但又与全局变量有点出入,具体什么区别,我也没弄懂,召唤大神
@yjqww6 @wwl1015 @竹殳 @木何 @狂人fantasy 还有其他的CL大神就不列举了,讲讲动态作用域

2012年10月29日 05点10分 4
1