Common Lisp: Porovnání verzí
Smazaný obsah Přidaný obsah
m úprava wikilinku |
m Robotické kosmetické úpravy |
||
Řádek 5:
== 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í [[soubor
'''Vstupní a výstupní toky''' představují zdroj [[binární
'''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átor náhodných čísle|generátoru náhodných čísel]].
Řádek 30:
== Datové struktury ==
'''Seznamy''' jsou u téměř všech ostatních dialektů Lispu ve složení conses. Tato datová struktura obsahuje dva [[slot
* (cons 3 1) - vytvoří cons a nastaví car na 3 a cdr na 1.
'''[[Pole (datová struktura)|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 [[asociace
'''Balíčky''' jsou symboly, které se užívají k oddělení jednotlivých částí [[program
'''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]].
Řádek 51:
== Funkce ==
=== Definice funkcí ===
Common Lisp podporuje [[funkce]] první třídy. Definice funkcí pomocí [[makro|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í [[metoda|metod]]. Tyto funkce se definují pomocí makra ''defgeneric''.
* (Defgeneric název funkce (tělo funkce))
[[Kategorie:Programovací jazyky]]▼
[[de:Common Lisp]]▼
[[en:Common Lisp]]
▲[[de:Common Lisp]]
[[es:Common Lisp]]
[[et:Common Lisp]]
[[fi:Common Lisp]]▼
[[fr:Common Lisp]]
[[gl:Common Lisp]]
[[ko:커먼 리스프]]▼
[[hr:Common Lisp]]
[[it:Common LISP]]
[[ja:Common Lisp]]
▲[[ko:커먼 리스프]]
[[pl:Common Lisp]]
[[pt:Common Lisp]]
[[ro:Common Lisp]]
[[ru:Common Lisp]]
▲[[fi:Common Lisp]]
[[sv:Common Lisp]]
[[uk:Common Lisp]]
[[zh:Common Lisp]]
▲[[Kategorie:Programovací jazyky]]
|