Alapjai rekurzió
A gyakorlat nem pusztán procedurális nyelvek, funkcionális, vagy logikai, és tartalmazza a jellemzői a különböző típusú nyelv. Eljárási nyelv gyakran lehet írni a funkcionális program, vagy annak egy részét, és fordítva. Ez lehet pontosabban helyett típusú nyelv beszélni a stílus vagy módszer programozás. Természetesen a különböző nyelvek támogatják a különböző stílusok különböző mértékben.
Eljárási és funkcionális programozás
Eljárási program áll kimutatások és javaslatok, amelyek szabályozzák azok végrehajtását. Tipikus üzemeltetők kijelölését és kezelését az átviteli hálózat üzemeltetők, input-output, és különleges ajánlatok hurok. Közülük is töredékei programok és alprogramok. A program lényege szedi a változó értékét jutalék rajta a kereset, és mentse az új érték az értékadó operátorral, és mindaddig, amíg nem kapott (és esetleg nyomtatott formában) a kívánt végső értékét.
Funkcionális program egy sor függvénydefiníciókat. Funkció, viszont azok a hívások, az egyéb funkciók, és a javaslatokat hívások kezelése. A számítások először egy funkció, amely viszont felhívja funkciók meghatározásában, stb szerinti hierarchikus struktúrát meghatározások és feltételes. Funkciók gyakran közvetlenül vagy közvetve okoznak maguknak.
Minden hívás egy értékét adja vissza a hívó funkciója számítás, amely azután folytatódik; Ez a folyamat addig ismétlődik, amíg indította számítási funkció nem adja vissza a felhasználónak, hogy a végeredményt.
„Tiszta” funkcionális programozás nem fogadja feladatok és vezérlőberendezések. Elágazási számítások alapján a mechanizmus feldolgozása feltételes ajánlatot érveket. Ismételt számítások keresztül rekurzió, amely az elsődleges eszköze a funkcionális programozás.
Rekurzív - ez azt jelenti, a maga
Számos gyakorlati helyzetekben szükséges rekurzív vagy magátismétlő viselkedés, visszatérve magát. Tegyük fel, hogy mi például megpróbálta elolvasni a szöveget más nyelven, az értelmező szótár a nyelvet. Amikor a szöveg egy ismeretlen szót talál, annak magyarázatát kérik a szótárban. A magyarázat a szó, viszont találkozik az ismeretlen szavak találhatók a szótárban, stb Ezt az eljárást meg lehet határozni a következő szabályok szerint:
Rekurzió ág terminál tartalmaz
A rekurzív intézkedés leírása értelme figyelni, hogy a következő tényeket. Először is, az eljárás általában tartalmaznak terminális ágából, és a befejezés feltétele. Másodszor, amikor az eljárás jön egy rekurzív ága, a folyamat leáll, és az új ugyanaz a folyamat kezdődik elölről, hanem egy új szintre. Szakítsa meg a folyamatot semmilyen módon emlékezetes. Ő várni fog kezdődik, amíg a végén, az új eljárás. Másfelől, az új eljárás szüneteltetésére, várjon, stb
Ez képezi egyfajta fa megszakítani a folyamatot, amelynek végrehajtására csak az utolsó éppen időben folyamatok (levél); vége után a munka továbbra is végezni, mielőtt azokat folyamatot. Teljesen az egész folyamat akkor történik, amikor a fa ismét üres, vagy más szóval, a megszakított folyamat befejeződött.
A rekurzió megnyilvánulhat számos formában
A valós világban rekurzió nyilvánul különböző formában és linkek. Ez lehet mind szerkezetében, mind akcióban.
Mindenki tudja, hogy a kép ismétlődik két tükör egymás ellen, a kép ábrázoló képet a TV-k, hogy a TV, stb A matematika, a rekurzió fordul kapcsolatban számos különböző szempontok, mint például a sorok, megismételve a vonal, algoritmusok, eljárások, definíciók és bizonyítások, egy szó, a különböző struktúrák.
A rekurzió általában megtalálható a természetben: a fák rekurzív struktúrák (ágak kialakított egyéb ágai), kialakítva a folyó áramlik ezeken a folyókon. A sejtszuszpenziót szétosztottuk rekurzívan. A növényekben, gyakran látható a makro szinten. Például, vetőmag mérlegek kúpok és magvait néhány szín (például napraforgó) vannakhelyezve metsző helikális ventilátorok által meghatározott Fibonacci arány.
Az élet folytatása jár egy rekurzív folyamat. A DNS-molekulák és vírusok terjednek, hogy lemásolja magát, élőlények utódot, ami viszont, szintén az utódok, stb
A rekurzió gyakori nyelv és viselkedés, valamint a módszerek érvelés és megismerés. Rekurzió nyelven, például lehet a szerkezet vagy tartalma:
„Péter azt mondta, hogy Bob azt mondta, hogy ...”
„Tudom, tudom, de nem emlékszem”
„Tedd, hogy cselekedjünk, hogy, hogy köze; ...”
„Az x helyére a javaslat”
„Emlékezz, és ezt az üzenetet”
...
Zenei forma és intézkedések is rekurzív sok tekintetben (például kánon, amely kíséri az azonos csengőhang dallam késéssel, és mások).
Célirányos viselkedés és problémamegoldás rekurzív eljárások. Hasonlóképpen, a kutatás, a mesterséges intelligencia területén rekurzívak tett kísérletet, hogy vizsgálja meg a folyamatok játszódnak le az agyban, amellyel van egy tanulmány, és a problémák megoldását, beleértve a kutatást a mesterséges intelligencia területén.
List épülnek rekurzívan
Rekurzió Lisp alapul matematikai elmélet rekurzív függvények. A rekurzió kiválóan alkalmas dolgozó listák, a listák maguk is tagjai allistákra, azaz van egy rekurzív szerkezettel. Kezelhető rekurzív struktúrák egészen természetes, hogy egy rekurzív eljárást.
List lehet meghatározni a következő szabályok szerint Backus-Naur Típus:
Lisp alapul rekurzív megközelítés
A Lisp programozási rekurzió segítségével meghatározható ismétlődő számítások. Ez alapján particionálás probléma és osztás részfeladat, amelynek megoldása, amennyire csak lehetséges, próbálja csökkenteni a már eldöntött vagy összhangban az alapötlet rekurzió kell megoldani az adott pillanatban a problémát.
Rekurzív alapú és gyakran használják a problémák megoldásában és a keresési mechanizmus a visszatérés, amellyel vissza lehet térni a zsákutcából ága a hely elágazási megszüntetésével számításokat végezni. Rekurzió Lisp nem csak a szervezet számítástechnika - a gondolkodás és a problémamegoldás módszertanát.
Az elmélet a rekurzív függvények
Az elmélet a rekurzív függvények, valamint a algebra listák és lambda-kalkulus egy másik pillér, amelyen nyugszik Lisp. Ezen a területen a matematika tanult elméleti kapcsolatos kérdések kiszámíthatóság. Kevesebb kiszámítható érteni az ilyen feladatokat, ami elvileg be lehet programozni, és megoldani a számítógép. Az elmélet a rekurzív függvények kínálja együtt a Turing-gép, lambda-kalkulus és egyéb elméleti formalizmus formalizmus egyenértékűek a algoritmikus kiszámíthatóság.
Az elmélet a rekurzív függvények maguk funkciók (algoritmusok) és tulajdonságait vizsgálta szerint osztályozott milyen funkciók állnak rendelkezésre, és kiszámítja, különféle formájú rekurziót. Az alapötlet a rekurzív definíció, hogy egy függvény segítségével rekurzió képleteket csökkenti a kezdeti értéket a korábban meghatározott funkció vagy a funkció is meghatározott, de egy „egyszerű” érveket. Kiszámítása a funkció befejezi abban a pillanatban, amikor csökken a kezdeti értékeket. Például Fibonacci számok
0, 1, 1, 2, 3, 5, ...
Lisp használatával infix jelölés lehet meghatározni a következő kiújulásának képletek:
(0 FIB) = 0
(1 FIB) = 1
(N FIB) = (((n - 1) FIB) + ((n - 2) FIB))
Az osztály műveleteit így kapott úgynevezett primitív osztály rekurzív függvények.
Vannak függvények, amelyek nem primitív rekurzív. Példaként, a Ackermann függvény, amely lehet meghatározni a következő kiújulásának képletek:
(0 Ack x y) = (y + x)
(1 Ack x y) = (y * x)
(2 Ack x y) = (y ^ x)
... ((Z + 1) Ack x y) = y értékei x-1-szer alkalmazott művelet (lambda (u v) (Z Ack u v))
A kívánt kör funkció segítségével Ack nem magasabb, mint a redukált primitív rekurzív, bár kiszámítható, azaz azt is meg lehet határozni alapján ez a meghatározás számítja ki az értékét véges idő alatt.
Meg tudjuk mutatni, hogy vannak funkciók, amelyek értékeket lehet kiszámítani egy algoritmus, de ez nem lehet algoritmikusan le. Számítása egy ilyen funkció lehet végtelen. Példaként, hagyja, hogy a függvény (n f m). az eredménye, amely 1, ha a decimális szám π bekövetkezik fragmensét ismétlődési számát hossz m n.
Meg lehet mutatni, hogy az algoritmus kiszámításához funkció létezik, de nem tudjuk, mi az. Mi csak próbálja kiszámítani π jeleit, abban a reményben, hogy a kívánt fragmentumokat talált, de annak megállapítására, hogy a végén már számítás, nem tudjuk. Az ilyen függvények általános rekurzív.
Az osztály a primitív rekurzív függvények elég érdekes a szempontból számos gyakorlati problémát. Használata rekurzív függvények Lisp nem kizárólagosan numerikus érték, használják őket (sőt nem is elsősorban) a szimbolikus struktúrák, amely megnyitja a nagy új lehetőségeket képest numerikus számításokat.