Lisp: Porovnání verzí
Visual LISP |
mala redujce 1. osoby |
||
Řádek 1: | Řádek 1: | ||
'''Lisp''' je [[funkcionální programování|funkcionální]] [[programovací jazyk]] s dlouhou historií. Jeho název je zkratka pro '''''Lis'''t '''p'''rocessing'' (''zpracování seznamů''). |
'''Lisp''' je [[funkcionální programování|funkcionální]] [[programovací jazyk]] s dlouhou historií. Jeho název je zkratka pro '''''Lis'''t '''p'''rocessing'' (''zpracování seznamů''). Stále se používá v oboru [[umělá inteligence]]. Používá ho tak0 například [[textový editor]] [[Emacs]] či konstrukční program [[AutoCAD]]. |
||
Z lispu jsou odvozeny i další jazyky - například [[Tcl]], [[Smalltalk]] nebo [[Scheme]]. |
|||
Další jazyky od něj odvozené jsou například [[Tcl]], [[Smalltalk]] nebo [[Scheme]]. |
|||
==Syntaxe== |
==Syntaxe== |
||
Základním zápisem v Lispu je seznam. Zaoisuje se tímto způsobem: |
|||
<source lang="lisp"> |
<source lang="lisp"> |
||
(1 2 "ahoj" 13.2) |
(1 2 "ahoj" 13.2) |
||
Řádek 18: | Řádek 16: | ||
* reálné číslo 13,2 |
* reálné číslo 13,2 |
||
Zeznam v příkladu reprezentuje uspořádanou čtveřici. Závorky v jazyce Lisp nefungují tak jako v [[matematika|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]]. |
Seznamy jsou v Lispu implementovány jako [[binární strom]] degenerovaný na [[jednosměrně vázaný seznam]]. |
||
Řádek 26: | Řádek 24: | ||
===Příkazy=== |
===Příkazy=== |
||
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í |
Například sčítání je realizováno příkazem '''+'''. Odpovídající konstrukce v jazyce vypadá takto: |
||
<source lang="lisp"> |
<source lang="lisp"> |
||
(+ 1 2 3) |
(+ 1 2 3) |
Verze z 20. 6. 2008, 08:14
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 tak0 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. Zaoisuje 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
Zeznam 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.