Jaka jest korzyść z zapisu Krivine?

9

Widziałem, jak niektórzy ludzie używają notacji Krivine'a do aplikacji funkcji podczas prezentacji składni dla -calculus. Na przykład -term (z normalną konwencją, że aplikacja funkcji kojarzy się z lewą stroną, więc w rzeczywistości oznacza to ) jest napisane (z podobną konwencją, że w rzeczywistości oznacza ). Nie widzę sensu posiadania kolejnej pary nawiasów wokół najbardziej wewnętrznego . Dlaczego ludzie używają notacji Krivine zamiast zwykłej?λλλfa.λx.λy.fa x yλfa.λx.λy.((fa x) y)λfa.λx.λy.(fa) x yλfa.λx.λy.((fa) x) yfa

dzień
źródło

Odpowiedzi:

13

Zakładam, że masz na myśli zapis Krivine'a z rachunku Lambda Calculus: typy i modele .

Notacja ta, stosowana jako reprezentacja danych, sprawia, że ​​wiele algorytmów na lambda jest łatwiejszych do wdrożenia i okazania się poprawnych. To znaczy, biorąc pod uwagę termin lambdafami1mi2)min, chcesz zobaczyć to jako głowę fawraz z listą argumentów[mi1,mi2),,min].

Załóżmy na przykład, że chcesz porównać dwa terminy fami1min z solt1tn. Często najbardziej naturalne jest porównywanie głowicfa i sol po pierwsze, nawet nie patrz na (mija,tja)pary, chyba że porównanie się powiedzie. (Często pojawia się to w implementacjach unifikacji wyższego rzędu).

Zobacz artykuł Cervesato i Pfenninga „ Liniowy rachunek kręgosłupa” w celu sformalizowania tego pomysłu.

Neel Krishnaswami
źródło
0

Jedna interesująca różnica pojawia się w części 2 „Reprezentatywne funkcje” rozdziału 2 książki Krivine. Trzy zakodowane w kościele są zapisane standardową notacją jakoλ x. λ y. x (x (x y)). Z notacją Krivine'a (jeśli w końcu rozumiem ją poprawnie!), Piszemy zamiast tegoλx λy (x)(x)(x)y.

Aaron Stump
źródło