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ű.

Kapcsolódó cikkek