Lisp
Z Wikipedie, otevřené encyklopedie
Lisp je funkcionální programovací jazyk s dlouhou historií. Jeho název je zkratka pro List processing (zpracování seznamů). Dnes se stále používá v oboru umělá inteligence.
Nic ale nebrání ho použít i pro jiné účely. Používá ho například textový editor Emacs či konstrukční program AutoCAD.
Další jazyky od něj odvozené jsou například Tcl, Smalltalk nebo Scheme.
Obsah |
[editovat] Syntaxe
Nejzákladnějším zápisem v Lispu je seznam. Zapisujeme ho jako:
(1 2 "ahoj" 13.2)
Tento seznam obsahuje čtyři prvky:
- celé číslo 1
- celé číslo 2
- text „ahoj“
- reálné číslo 13,2
Jde tedy o uspořádanou čtveřici. Všimněte si, že závorky nefungují tak jako v matematice, ale pouze označují začátek a konec seznamu.
Seznamy jsou v Lispu implementovány jako binární strom degenerovaný na jednosměrně zřetězený seznam.
Co se seznamem Lisp udělá, záleží na okolnostech.
[editovat] Příkazy
Příkazy píšeme také jako seznam, první prvek seznamu je však název příkazu.
Například sčítání provádíme příkazem +, což interpreteru zadáme takto:
(+ 1 2 3)
Interpretr odpoví 6.
[editovat] Ukázka kódu
Program hello world lze zapsat několika způsoby. Nejjednoduší vypadá takto:
(format t "Hello, World!")
Funkce se v Lispu definují pomocí klíčového slova defun:
(defun hello () (format t „Hello, World!“)) (hello)
Na prvních dvou řádcích je definice funkce hello, na třetím řádku je tato funkce svým jménem zavolána.
Funkcím lze předávat i argumenty. V následujícím příkladu je ukázka funkce fact, která vypočítá faktoriál zadaného čísla:
(defun fact (n)
(if (= n 0)
1
(* n (fact (- n 1)))))
Pro výpočet faktoriálu čísla 6 předáme tuto hodnotu jako argument funkci fact:
(fact 6)
Návratovou hodnotou funkce bude hodnota 720.
[editovat] Externí odkazy
- Hubičkova školička o Lispu
- Common Lisp HyperSpec™ (anglicky)
- ANSI Common Lisp Implementation (anglicky)
| Programovací jazyky | |||
|
ABAP | Ada | AWK | Assembler | C | C++ | C# | COBOL | ColdFusion | Clean | D | Eiffel | Erlang | Flex | Fortran | JADE | Java | JavaScript | Lisp | Lua | Oberon | Object Pascal | Objective-C | Pascal | Perl | PHP | Python | REALbasic | REBOL | RPG | Ruby | SQL / PL/SQL | Tcl / Tcl/Tk | Visual Basic / VBScript | VB.NET | Visual FoxPro
|

