Lambda hesabında “Başvuru sırası” ve “Normal sıralama”


14

Uygulamalı sıra: Fonksiyonun kendisini değerlendirmeden önce bir fonksiyonun argümanlarını daima tam olarak değerlendirin, örneğin -

(λx.x2(λx.(x+1)  2)))(λx.x2(2+1)) (λx.x2(3)) 32  9

Normal düzen: İfade, dışardan -

(λx.x2(λx.(x+1) 2)) (λx.(x+1)   2)2 (2+1)2 32  9

Let M=(λx.y (λx.(x  x) λx.(x  x)))

Neden uygulanabilir düzen altında, sonsuz döngü, ama normal düzen altında, M y ?M
My


1
Onları hiç değerlendirmeyi denediniz mi? Belirsiz olan ilk mi yoksa ikinci vaka mı?
Karolis Juodelė

@ KarolisJuodelė: 1st
URL87

1
İlk lambda ifadesinin sonunu ve argümanın başlangıcını işaretlemek için lambda ifadeleri parantezle yazılmamalıdır, örneğin:Let M = (λx.y) ((λx.(x x)) λx.(x x))
matematiksel olarak

Yanıtlar:


7

(λx.y (λx.(x  x) λx.(x  x)))

λx.(x  x) λx.(x  x)λx.(x  x) λx.(x  x)
λx.(x  x)

15

(KyΩ)Kyλx.yyΩ=(λx.(xx)λx.(xx))ΩΩΩ

ΩMMΩMΩ

KyKy(KyΩ)yKyNyN

Bu durum daha genel bir fenomeni göstermektedir: Uygulamalı emir azaltma, eğer terim güçlü bir şekilde normalleşiyorsa normal bir form bulurken, normal emir azaltma her zaman normal formda bulunur. Bunun nedeni, uygulanabilir düzenin ilk önce her zaman tam argümanları değerlendirmesidir ve bu nedenle bir argümanın kullanılmadığı ortaya çıkma fırsatını kaçırır; oysa normal düzen argümanları mümkün olduğunca geç değerlendirir ve bu nedenle argüman kullanılmazsa daima kazanır.

(Kapak tarafı, uygulama düzeninin uygulamada daha hızlı olma eğilimindedir, çünkü bir argümanın kullanılmaması nispeten nadirdir; oysa bir argümanın birden çok kez kullanılması yaygındır ve uygulama emri altında argüman sadece bir kez değerlendirilir. order, argümanı 0, 1 veya birçok kez kullanıldığı kadar sık ​​değerlendirir.)


KyNNy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.