本文主要是介绍【PL理论】(23) 函数式语言:let-in 示例的分解 | 谁在使用动态作用域?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- 💭 写在前面:本章我们将对函数式语言的讲解进行收尾,分解一下之前讲的 let-in 示例。然后讨论一下谁在使用动态作用域。
目录
0x00 let-in 示例的分解
0x01 谁使用动态作用域?
0x00 let-in 示例的分解
让我们详细检查这个示例的评估步骤,回忆一下 let-in 语义的推理规则:
let x = 10 in
let y =let x = 1 inlet z = 2 inx + z
in
x + y
0x01 谁使用动态作用域?
在 C 语言中,宏函数可能是现代语言中唯一类似于动态作用域的特性。
当然,宏展开并不完全等同于函数调用 (它只是简单的重写程序) ,
但它具有类似的效果,在以下实例中,a 将变成 25 或 36:
int n = 10;#define add_n(x) (x + n)int main(void) {int a;if (...) { int n = 20; a = add_n(5); }else { int n = 30; a = add_n(6); }
}
📌 [ 笔者 ] 王亦优
📃 [ 更新 ] 2024.6.13
❌ [ 勘误 ] /* 暂无 */
📜 [ 声明 ] 由于作者水平有限,本文有错误和不准确之处在所难免,本人也很想知道这些错误,恳望读者批评指正!
📜 参考资料 Microsoft. MSDN(Microsoft Developer Network)[EB/OL]. []. . |
这篇关于【PL理论】(23) 函数式语言:let-in 示例的分解 | 谁在使用动态作用域?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!