Common Lisp: Porovnání verzí

Smazaný obsah Přidaný obsah
funkční -> funkcionální (programování)
Lukazuko (diskuse | příspěvky)
oprava mnoha linků na rozcestník
Řádek 23:
* '''character '''- Neboli [[písmeno]], představuje jeden [[#printer|tisknutelný]] znak.
 
* '''number '''- Je základní číselný typ. Lze s ním provádět veškeré běžné [[aritmetika|aritmetické]] [[Operace (matematika)|operace]] ([[sčítání|+]], [[odčítání|-]], [[dělení|/]], [[násobení|*]], [[mocnění|exp]], [[odmocnění|sqrt]], [[absolutní hodnota|abs]]...) a základní porovnání (=) pro zjištění číselné [[Rovnost (matematika)|rovnost]]i.
 
=== Numerické typy ===
* [[real|'''real''']] - Je subtyp od ''number''; Představuje [[reálná čísla]], některá však v '''CL''' nemusí být vyjádřitelná přesně (např. [[iracionální čísla]]). Pouze čísla typu ''real'' mohou být [[uspořádání|uspořádána]] pomocí funkcí <, > , &lt;= , a >=.
* '''complex''' - Je subtyp od ''number''; Pomocí complex lze zapsat [[komplexní číslo]] v [[komplexní rovina|kartézských souřadnicích]], nebo jakýkoliv předcházející číselný typ. Číslo lze přímo zadat pomocí [[#reader|makrocharakteru]] #C. např.:
Řádek 35 ⟶ 36:
 
== Jiné typy ==
 
''Cesty'' představují [[soubor]]y a [[Adresář (informatika)|adresáře]] v souborovém systému.
 
Řádek 42:
''PRNG'' je pseudo-generátor náhodných čísel, 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, [[výjimkaVýjimka (programování)|výjimky]] a jiné události na které [[Počítačový program|program]] reaguje.
 
== Datové struktury ==
Řádek 48:
* (cons 3 1) - vytvoří cons a nastaví car na 3 a cdr na 1.
 
''[[Pole (datová struktura)|Pole]]'' je číselný typ. Vytváří se pomocí [[Podprogram|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:
* [[Textový řetězec|řetězec]] – vektor znaků
* bit-vektor – vektor bitů
 
Řádek 56:
* (make-array 4) – jednorozměrné pole (4 prvky)
 
''Hash tabulky'' ukládají [[data]] spolu s jejich [[Asociace (informatika)|asociace]]mi. Každý [[Instance třídy|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í [[Počítačový program|program]]u. Samotný balíček může [[Vývoz|export]]ovat některé symboly jako součást [[Rozhraní (informatika)|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 třídy|instance]].
 
== Funkce ==
 
=== Definice funkcí ===
Common Lisp podporuje [[Podprogram|funkce]] první třídy. Definice funkcí pomocí [[makroMakro (software)|makra]] ''defun''. V definici je uveden název funkce, všechny argumenty funkce a tělo funkce.
(defun název_funkce (argumenty) tělo_funkce)
 
Řádek 74 ⟶ 73:
 
=== Definice generické funkce a metody ===
 
Metody se definují pomocí makra ''defmethod''.
* (Defmethod název metody (tělo metody))