在lambda演算中,一個項是beta範式(規範型),如果沒有“beta歸約”是可能的。一個項是beta-eta範式,如果既沒有beta歸約又沒有“eta 歸約”是可能的。一個項是頭部範式,如果沒有“在頭部位置的 beta-可規約式”。
基本介紹
- 中文名:Beta範式
- 外文名:Beta paradigm
- 領域:lambda演算
Beta 歸約,歸約策略,
Beta 歸約
在lambda演算中,beta可歸約式(redex)是如下形式的項
![](/img/d/3dd/2149fea1dc81d89307635af6dfee.jpg)
這裡的
是(可能)涉及變數
的項。
![](/img/f/095/a3044c3d7bcbdd3d7ada511eb904.jpg)
![](/img/0/656/e91ea148c350bf2794d0a8758f73.jpg)
“在頭部位置的beta歸約”是把如下重寫規則套用於一個beta可歸約式
![](/img/d/181/78d9f735000617b944ff60fd5d9a.jpg)
這裡的
是把項
中變數
替換為項
的結果。
![](/img/b/84c/f1f42ae409e088c59f81dd1fd0d4.jpg)
![](/img/7/449/406ce261aa99f0f2ea686ddc099c.jpg)
![](/img/9/582/69218760f82c88f9218f0edbb73d.jpg)
![](/img/3/cc8/b3ad57e7295dff8b3308f69081b1.jpg)
一個beta歸約在頭部位置,如果它有如下形式:
![](/img/d/d91/05716ae8b28712e1ebfbf6e03c4d.jpg)
不是這種形式的任何歸約都是內部beta歸約。
歸約策略
一般的說,對於給定項有多個不同的可能的 beta 歸約。正規序歸約是一種求值策略,它始終套用“頭部位置的 beta 歸約”的規則,直到沒有更多的這種歸約是可能的。在這一點上,結果的項是“頭部範式”。
相反的,在套用序歸約中,首先套用內部歸約,而只在沒有更多的內部歸約是可能的時候套用頭部歸約。
正規序歸約是完備的,在如果一個項有頭部範式則正規序歸約總是能最終達到它的意義上。相反的,套用序歸約可能不終止,即使在這個項有規範形式的時候。例如,使用套用序歸約,下列歸約序列是可能的:
![](/img/9/417/3eca09bd8ada2402aa13f23b31e3.jpg)
![](/img/2/d5c/e510ffeee7d2408f0d721436464f.jpg)
![](/img/0/591/81129e9b47fd2b3a06586731b4ac.jpg)
![](/img/7/2c1/c9deaff75670c06f9e9790e47423.jpg)
![](/img/0/658/40a5c2e5566c51f4b8730d2a7f11.jpg)
而使用正規序歸約,同樣的起點迅速的歸約到範式:
![](/img/6/c3b/90f51c15096a1b6d63406711a62b.jpg)
![](/img/f/8cf/edf0e2e76f9d21730e059b406d0b.jpg)