從是否與environment無關這點來看,lexical scope與dynamic scope之間是有一個對偶關係的:
- 對dynamic的abstraction而言,在哪裡建立都一樣;然而application的時候結果就會跟著environment變化而變化
- 反過來,對lexical的abstraction而言environment是會影響closure到底 capture 到什麼的,所以不是environment無關;但對application來說,已經建立的closure在哪裡執行都一樣
也就是說 Landin 他們發現的是,人們預期 function application 是 environment 無關的。因此這也就成了大部分程式語言的選擇。
但這不意味著沒有其他的選擇,有一個程式語言Kernel 就是利用dynamic scope的語意設計出不需要phase distinction的macro system。而諸多類似algebraic effect的跳轉系統,也可以說是應用了dynamic scope