Fix pont kombinátor

A fix pont a funkciót hívjuk értéke olyan, hogy. Például az értékek fix pontot, és egyaránt funkcionál. Mivel a fix pont az elsőrendű függvények (azaz funkciók a „közönséges” értékek, mint egészek) elsőrendű érték a magasabb rendű funkcióit a fix pontok az egyéb funkciók, vagyis ha - fix pont (maga is függvénye) funkciót. Ezt figyelembe véve, egy fix pont kombinátor úgynevezett különlegessége:

Fix pont combinators teszi, hogy meghatározza egy névtelen rekurzív függvények. Egy kicsit meglepő, hogy az ilyen schemers magukat alkalmazásával lehet meghatározni, nem rekurzív λ-absztrakciók.

Az egyik legismertebb (és talán a legkönnyebb) fixpontos kombinátor a típustalan λ-kalkulus az úgynevezett Y kombinátor. Ez által kifejlesztett Haskell Curry, és meghatározása a következő:

Meg kell jegyezni, hogy az Y kombinátor használata a számítógépes stratégiai „call megnevezés”, hiszen a kifejezés (YG) hurkok tetszőleges g stratégia „hívás érték”.

Schemer fixpont szigorú és nem szigorú nyelven [szerkesztés]

Egyes matematikai formalizmus leírja számítástechnikai folyamatok (pl, λ-kalkulus vagy kombinatorikus logika), minden egyes kifejezés lehet tekinteni, mint a magasabb rendű funkciókat. Ezek formalizmusok megléte kombinátor fix pont azt jelenti, hogy minden funkció legalább egy fix pont. De ugyanakkor a funkció számos különböző fix pont.

Néhány más rendszerek, mint például egyszerűen gépelt λ-kalkulus. jól tipizált cselszövő fix pontot nem lehet építeni. Az ilyen rendszerekben minden támogatást rekurzió kifejezetten meg kell határozni a jelöléssel. Más rendszerekben, mint például egyszerűen gépelt λ-kalkulus rekurzív típusú hozzá. fix pont combinators lehet építeni, de a típusát „hasznos” combinators (pl amelynek használata mindig visszatér) is tilos.

Például, a programozási nyelv standard ML megvalósítási módja kombinátor Y hívni típus jelentőségteljesen ∀a.∀b. ((A → b) → (A → B)) → (A → B), míg a lehetőséget arra, hogy az neve típusú ∀a. (a → a) → a. Lehetőséget arra, hogy nevében a hurkok alkalmazva szigorú nyelven. Yf mert minden használat mindig zajlik f (yf). Továbbá, az érvelés számítjuk külső f függvény. mivel szükség van rá a hívás stratégia értéke, és a kapott értéket f (f (Yf)). Ez a folyamat megy a végtelenségig, de az értéke ennek a kérelem beérkezik soha nem lesz.

Példa [idézet]

Tekintsük az kiszámítására faktoriális (A. Egyház jelölés). Átlagos rekurzív matematikai definíciója a következő:

Láthatjuk újabb lépés kiszámításához ez a rekurzió jelölést λ-kalkulus:

F = λf.λx. (ISZERO x) 1 (mult X (f (PRED x)))

ahol «f» - paramétert funkció faktoriális. F függvény egy lépéssel rekurzió a fenti képletben. Amikor a vele szemben alkalmazott fix pont kombinátor rögzíti, hogy a következő sorrendben nyilatkozatok:

További alkalmazási lehet nevezni fix (F) valójában. hanem azért, mert:

Valójában (n) = (ISZERO n) 1 (mult N (tény (PRED n)))

Így világos, hogy egy fix pont kombinátor valóban átalakítja nem-rekurzív függvény, amely kiszámítja egy rekurziós lépésben, egy rekurzív függvény kielégíti a fenti képlettel.

Egyéb combinators fix pont [szabály]

Verzió kombinátor Y. amelyeket fel lehet használni a call-by-értéket (segítségével meghatároztuk η-csökkenés):

Y kombináló lehet kifejezni a kombinatorikus SKI alapján az alábbiak szerint:

A legegyszerűbb (amely a legkisebb számú bázis combinators terjeszkedés alapja) a fix pont kombinátor alapján SK. D. Tromp talált:

Ez a bejegyzés megfelel az alábbi λ-kifejezést.

Tovább fixpontos kombinátor talált Turing.

Ez kombinátor is van egy egyszerű formája a hívást az értéket:

Fix pont combinators nem olyan ritka, (ezek általában végtelen sok). Néhány alkalmazunk szórakozás (L kifejezés megtalálható benne 26 alkalommal):

Lásd. Is [szerkesztés]

Kapcsolódó cikkek