Procházet otázky :: SZZ na MFF UK

#

- Hlavní strana
- Okruhy
- Projít
- Stáhnout
- Co je potřeba
- Chci přispět
- Kredity

Hledat:

## Prohlížení státnicových textů

### Lisp

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, GIMP či konstrukční program AutoCAD.

Další jazyky od něj odvozené jsou například Tcl, Smalltalk nebo Scheme.

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ě vázaný seznam. Co se seznamem Lisp udělá, záleží na okolnostech.

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.

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.