Lisp: Porovnání verzí

Z Wikipedie, otevřené encyklopedie
Smazaný obsah Přidaný obsah
TXiKiBoT (diskuse | příspěvky)
m robot změnil: pl:Lisp
Nallimbot (diskuse | příspěvky)
m robot přidal: sq:Lisp
Řádek 116: Řádek 116:
[[sk:Lisp]]
[[sk:Lisp]]
[[sl:Lisp (programski jezik)]]
[[sl:Lisp (programski jezik)]]
[[sq:Lisp]]
[[sr:Lisp]]
[[sr:Lisp]]
[[sv:Lisp]]
[[sv:Lisp]]

Verze z 20. 9. 2008, 19:55

Lisp je funkcionální programovací jazyk s dlouhou historií. Jeho název je zkratka pro List processing (zpracování seznamů). Stále se používá v oboru umělá inteligence. Používá ho také například textový editor Emacs či konstrukční program AutoCAD.

Z Lispu jsou odvozeny i další jazyky - například Tcl, Smalltalk nebo Scheme.

Syntaxe

Základním zápisem v Lispu je seznam. Zapisuje se tímto způsobem:

(1 2 "ahoj" 13.2)

Tento seznam obsahuje čtyři prvky:

  • celé číslo 1
  • celé číslo 2
  • řetězec znaků „ahoj“
  • reálné číslo 13,2

Seznam v příkladu reprezentuje uspořádanou čtveřici. Závorky v jazyce Lisp 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 jazyka Lisp se zapisují také jako seznam, jehož první prvek seznamu je název příkazu.

Například sčítání je realizováno příkazem +. Odpovídající konstrukce v jazyce vypadá 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 (zerop n)
    1
    (* n (fact (1- n)))))

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.

Externí odkazy