Lisp - Encyclopedia of programozási nyelvek
LISP (LISP, az angol-lista -. «Processing listája") - a család programozási nyelvek alapján a programot bemutató rendszer lineáris listák karakterek, amelyek egyébként a fő szerkezete a nyelvi adatok. Lisp a második legrégebbi után Fortran magas szintű programozási nyelv.
Lisp nyelv által javasolt J .. McCarthy 1960 és elsősorban a fejlesztési programok a problémák megoldása nem numerikus karaktert. Az angol nyelv nevére - LISP egy rövidített kifejezés-lista (lista feldolgozás) és jól kiemeli az alapvető annak alkalmazási körét. A „lista” nagyon fogékony. Formájában jelenítjük kényelmes képviselni algebrai kifejezések, grafikonok, elemei a véges csoportok, meg a következtetési szabályok, és sok más összetett objektumok. Felsorolja a legrugalmasabb formája az információk bemutatása a számítógép memóriájában. Nem meglepő tehát, hogy kényelmes nyelvet kifejezetten kezelésére listák, gyors népszerűségre tett szert.
A nagy előnye Lisp funkcionális orientáció, t. E. programozás végzik segítségével funkciókat. Amennyiben a funkció értelmezni, mint egy szabály, hogy vesz egy eleme egy osztály a megfelelő elemek egy másik osztály. Matching folyamat önmagában nincs hatással a működését a program, csak az fontos eredmény - az a függvény értékét. Ez teszi, hogy viszonylag könnyű írni és hibakeresés egy nagy szoftver rendszerek. Clarity programok világos elhatárolása funkciók, nincs trükkös mellékhatások azok megvalósításában az a követelmény, programozás logikai kihívások, melyek a kihívásokat a mesterséges intelligencia. Fegyelem programozás különösen fontossá válik, ha egynél több személy dolgozik a program, hanem egy csoport programozók.
Lisp programozási nyelv, amelyet elsősorban kezelésére jellegű információkat. Ezért természetes, hogy a világon a Lisp nem játszanak jelentős szerepet. A főbb típusai a adatok Lisp úgynevezett „atom”, és „pontozott pár”.
szintaxis elemek:
A reguláris kifejezés változó azonosító
bármilyen kombinációja karaktert, amely nem tartalmaz szóközöket és nem szám
Szabályos kifejezés függvény azonosítója
Az eredmény a futás ezt a kódot az interaktív üzemmód a következő formában:
Helló, világ!
NIL
Az első sor tartalmazza a szabványos kimenetre, a második - a visszatérési értéke a kódot (ebben az esetben - annak hiánya).
factorial:
Ez a példa a rekurzív definíciója faktoriális ez természetes Lisp. Ez azt mutatja, az alábbi funkciók a nyelv:
- matematikai operátorok: (- n 1) - előtagot bejegyzést, egyenértékű infix n-1;
- összehasonlító operátorok: (= n 0) visszatér T, ha n értéke nulla, és nil (használt hamis) másképp;
- feltételes ha. Lisp kifejezések meghatározása a konzolok és tárolható, mint egy pár sort;
- meghatározási funkció segítségével defun;
- makró Common Lisp hurok;
- O formátum specifikáció formátumban.
D megfelel egész szám, és a
Fibonacci számok:
Ez használ rekurzív definíció Fibonacci számokat. Rész végül hurok makró végrehajtása után a ciklus végéig.
Fibonacci számok:
Ez a példa iteratív meghatározását Fibonacci számok megtanulása nélkül, kifejezett rekurzív hívása fib-iter funkciót.
factorial:
A belső hurok utánvéttel művelet létrehoz egy listát a számokat 1-től n. * Ami után a műveletet alkalmazzuk rá.
Másodfokú egyenlet:
Common Lisp lehetővé teszi, hogy működjön együtt a komplex számokat és kinyomtathatja azokat a formátumban #C (valós képzetes). Funkció write-karakterlánc átalakítja a számot egy string.
CamelCase:
Helló, világ!:
Kimeneti vonal print - mellékhatása ez a parancs kerül végrehajtásra. Attól függően, hogy a végrehajtás, a csapat visszatér vagy az azokból származó szöveget vagy meghatározatlan visszatérési érték.
Helló, világ!:
factorial:
Ez használ rekurzív definíciója faktoriális. A tartomány funkció egy érv listát állít elő a 0 bezárólag ez a szám csak. str - sztring funkciót. december funkció megegyezik a (- x 1). doseq - a hurok Clojure.
factorial:
Kiszámításához faktoriális létrehozott intervallum szám 2-től ez a szám, és a terméket az előbbi számok kiszámítjuk (érvényesek funkció).
Fibonacci számok:
Segítségével rekurzív számítása Fibonacci számokat.
factorial:
Ez használ rekurzív definíciója faktoriális. Megjegyezzük, hogy a GNU Guile és MIT / GNU Scheme megjelenik a helyes eredmény, de JScheme túlcsordulás következik be, és a faktoriális 13! számított helytelenül.
Fibonacci számok:
Ez használ rekurzív definíció Fibonacci számokat.
Másodfokú egyenlet:
Másodfokú egyenlet:
kezdődik építkezés használják több parancs végrehajtását egy sorban.
CamelCase:
Ez a példa az együttműködésre az reguláris kifejezések regex modult. Az első két sor csatlakozni kívánt modulokat. Harmadszor - olvasott szöveg az említett input adatokat olvasni paranccsal (rdelim modul) - ellentétben olvasni. beolvassa az összes karaktert, amíg a végén a szöveg, és nem az első helyet - és lefordítja a kisbetűs.
A negyedik parancs szekvencia minden kisbetűk egy sorban. Minden ilyen szekvenciát helyettesíti azt alkalmazásának az eredménye egy bizonyos funkciót, hogy ez (keresztül kapcsolódnak lambda). Ebben az esetben a függvény karakterlánc-titlecase. átalakítja az első karakter nagybetűs.
Végül az ötödik parancs eltávolítja a sorban az összes karakter, amely nem betű.