我试图弄清楚 Haskell 是否使用动态或静态作用域。
我意识到,例如,如果您定义:
let x = 10
然后定义函数
let square x = x*x
您有 2 个不同的“x”,这是否意味着它是动态作用域的?如果不是,它使用什么范围,为什么?
另外,Haskell 变量可以有别名(同一内存位置/值的不同名称)吗?
Thanks.
Haskell 使用(广义上)与大多数其他语言完全相同的词法范围。
eg.
x = 10
结果通过引用的值x
在全球范围内,而
square x = x * x
将导致x
词法作用域为函数 square。如果您认为上述形式是以下语法的完美形式,这可能会有所帮助:
square = \ x -> x * x
至于你的其他问题,我不确定你所说的别名是什么意思
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)