繁体   English   中英

Lambda演算/ Haskell中变量的范围

[英]Scope of variables in lambda calculus / haskell

给定类似s的表达式:=(λx,y,zx yz)λx,yxλy,zz是绑定变量的范围

s:=(λx,y,zx yz)(λx,yx)(λy,zz)

要么

s:=(λx,y,zx yz)(λx,yx(λy,zz))

我猜这是第二个选择。

这个问题基本上是无法回答的。 使用提议的抽象语法树来定义具体的语法很容易,而且我真的不认为有一种很强的约定或另一种约定可以让您假设一种约定没有在语法定义中看到明确的文本。您正在阅读的文档。

由于已将其显式标记为Haskell:在此特定情况下,它只是一个解析错误,因此需要添加括号以消除歧义。 但是,如果没有第一个\\xyz -> xyz函数,则默认设置为解析为\\xy -> (x (\\yz -> z)) ,并且您需要添加括号以获取(\\xy -> x) (\\yz -> z) \\yz -> z周围的括号不是可选的。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM