Deklarativní programování: Porovnání verzí

Smazaný obsah Přidaný obsah
MatSuBot (diskuse | příspěvky)
m řaď jako hlavní článek
m Robot: -zastaralá značka HTML
Řádek 18:
 
* '''Jazyk [[SQL]]''' je typickým příkladem [[domain-specific programing language|domain-specific jazyka]] pro řešení konkrétních problémů. Je to dotazovací jazyk nad daty databáze.
<sourcesyntaxhighlight lang="sql">
SELECT firstname, lastname FROM users ORDER BY lastname ASC;
</syntaxhighlight>
</source>
Provede dotaz a vybere všechna jména a příjmení uživatelů z tabulky ''users'' a seřadí je vzestupně podle příjmení.
 
* '''Jazyk [[Scheme]]''' je [[funkcionální programování|funkcionální jazyk]]. Příkladem může být definice faktoriálu:
<sourcesyntaxhighlight lang="scheme">
(define (faktorial n)
(if (= n 0)
1
(* n (faktorial (- n 1))))))
</syntaxhighlight>
</source>
a jeho zavolání
<sourcesyntaxhighlight lang="scheme">
(faktorial 5)
</syntaxhighlight>
</source>
 
* '''Jazyk [[Prolog (programovací jazyk)|Prolog]]''' je jazyk pro [[logické programování]]. Definují se v něm pravidla a v dotazovacím módu se uživatel ptá interpreta na skutečnosti, které interpret přímo nezná, ale dokáže si je ze známých skutečností odvodit. Příkladem definování takových pravidel mohou být rodinné vztahy:
<sourcesyntaxhighlight lang="text">
% Ladislav je rodičem Adriany
rodic(ladislav, adriana).
Řádek 45:
% definice sourozence
sourozenec(Sourozenec, X) :- rodic(Y, X), rodic(Y, Sourozenec), \+(Sourozenec = X).
</syntaxhighlight>
</source>
pokud se pak potřebujeme zeptat jaké má Adriana sourozence, zapíšeme:
<sourcesyntaxhighlight lang="text">
sourozenec(adriana, X).
</syntaxhighlight>
</source>
Výstupem pak bude
<sourcesyntaxhighlight lang="text">
X = lubomir ;
No
</syntaxhighlight>
</source>
nebo jací jsou rodiče Lubomíra:
<sourcesyntaxhighlight lang="text">
rodic(X, lubomir).
</syntaxhighlight>
</source>
výsledkem bude:
<sourcesyntaxhighlight lang="text">
X = ladislav ;
X = sarka ;
No
</syntaxhighlight>
</source>
 
== Související články ==