Multimediaexpo.cz je již 18 let na českém internetu !!
V tiskové zprávě k 18. narozeninám brzy najdete nové a zásadní informace.
Common Lisp
Z Multimediaexpo.cz
m (1 revizi) |
m (1 revizi) |
Aktuální verze z 25. 4. 2014, 11:49
Common Lisp je v informatice rozšířením funkcionálního programovacího jazyku Lisp, který je zveřejněn v ANSI (American National Standards Institute). Common Lisp by vyvinut kvůli sjednocení odlišných variant Lispu. Jedná se o jazyk, který využívá procedurální, funkční a objektově-orientované programovací paradigmata. Obsahuje sadu nástrojů pro objektově orientované programování. Další rozšiřující dialekty jsou s Common Lisp kompatibilní (cmlisp, elisp, autolisp atd.).
Obsah |
Proměnné
K nastavení proměnných slouží příkaz setq. Lokální proměnné se nastavují příkazem let.
- (setq a 1) – nastaví proměnnou a na hodnotu 1
- (let ((b 8)) b) – dočasné nastavení proměnné b na hodnotu 8
Typy
Používají se zde běžné aritmetické operace (+, −, /, *, exp, sqrp, sin atd.)
- integer
- Musí obsahovat znaménko (+ nebo –), nesmí se zde nacházet (.). Výhodou integeru je že může být libovolně dlouhý.
- real
- Platí zde stejné pravidla jako u typu integer s rozdílem, že real musí obsahovat znak (.).
- rational
- Používá se pro zlomky. Operace dvou čísel typu integer mezi nimiž je znak (/).
- complex
- Pomocí complex lze zapsat jakýkoliv předcházející typ (#c(číselná hodnota)).
Jiné typy
Cesty představují soubory a adresáře v souborovém systému.
Vstupní a výstupní toky představují zdroj binárních a textových dat.
PRNG je pseudo-generátor náhodných čísle, který je vestavění v Common Lisp. Náhodný objekt představuje jedno použití zdroje generátoru náhodných čísel.
Podmínky představují chyby, vyjímky a jiné události na které program reaguje.
Datové struktury
Seznamy jsou u téměř všech ostatních dialektů Lispu ve složení conses. Tato datová struktura obsahuje dva sloty car, cdr (podle "contents of address register" a "contents of decrement register").
- (cons 3 1) - vytvoří cons a nastaví car na 3 a cdr na 1.
Pole je číselný typ. Vytváří se pomocí funkce make-array. Pomocí funkce aref se do něho přistupuje. Je zde i podpora vícerozměrných polí, které lze využít pro matice při matematických operacích. Velikost pole lze dynamicky měnit v případě potřeby. Jednorozměrné pole je vektor. Jednotlivé prvky pole mohou být jakékoliv typu (i smíšené typy v jednom poli). Dva typy polí dle obsahu:
- řetězec – vektor znaků
- bit-vektor – vektor bitů
Příklad vytvoření pole:
- (make-array '(2 2)) – dvourozměrné pole (2x2).
- (make-array 4) – jednorozměrné pole (4 prvky)
Hash tabulky ukládají data spolu s jejich asociacemi. Každý objekt v hash tabulce má svůj klíč (key) a k němu příslušnou hodnotu (value).
Balíčky jsou symboly, které se užívají k oddělení jednotlivých částí programu. Samotný balíček může exportovat některé symboly jako součást rozhraní. Balíček může sám užívat i jiné balíčky.
Struktury představují libovolné komplexní datové struktury s libovolným počtem a typem polí (nazývají se sloty). Struktury umožňují jednoduchou dědičnost.
Třídy jsou podobné jako struktury. Nabízejí více dynamických vlastností a vícenásobnou dědičnost. Třídy byly do Common Lisp přidány až později. Objekty vytvořené třídy se nazývají instance.
Funkce
Definice funkcí
Common Lisp podporuje funkce první třídy. Definice funkcí pomocí makra defun. V definici je uveden název funkce, všechny argumenty funkce a tělo funkce.
- (defun název funkce (tělo funkce))
Místní funkce mohou být definovány pomocí příkazů flet a labels.
- (Flet název funkce (tělo funkce))
Definice generické funkce a metody
Metody se definují pomocí makra defmethod.
- (Defmethod název metody (tělo metody))
Generické funkce jsou kolekcí metod. Tyto funkce se definují pomocí makra defgeneric.
- (Defgeneric název funkce (tělo funkce))
Náklady na energie a provoz naší encyklopedie prudce vzrostly. Potřebujeme vaši podporu... Kolik ?? To je na Vás. Náš FIO účet — 2500575897 / 2010 |
---|
Informace o článku.
Článek je převzat z Wikipedie, otevřené encyklopedie, do které přispívají dobrovolníci z celého světa. |