在lambda演算中按值调用
|
我正在通过类型和编程语言进行工作,Pierce提出了“减少价值”策略,给出了术语“ 0”的示例。首先将内部redex
id (λz. id z)
还原为λz. id z
,然后将外部redex还原为正常形式λz. id z
,这是第一次还原的结果。
但是按值顺序调用被定义为“仅减少最外面的redex”,而“仅当其右手侧已减小为value时才减少redex”。在示例中,“ 1”出现在最外面的redex的右侧,并被简化。这与仅减少最外部的redex的规则如何平方?
“最外层”和“最内层”仅是lambda抽象的答案吗?因此,对于λz. t
中的t
而言,t
不能被还原,但是在redexs t
中,如果可能的话,t
被还原为v
,然后s v
被还原?
没有找到相关结果
已邀请:
2 个回复
篮肥炼皖
E是您可以评估的东西。 例如,按名称命名为lambda演算,评估上下文为:
因为即使术语不是值,您也可以减少应用程序。 例如,“ 15”卡在按值调用中,但按名称调用中则减为“ 16”,这是正常形式。 在上下文中,语法“ 17”是一种普通形式(按名称调用),其定义为:
您可以在Pierce的第19.5.3章中看到上下文的另一种定义。
部窖空