Funkcionálne a logické programovanie
Popis:
1.1. Jazyky programovania
Programovací jazyk je prostriedkom pre formálny opis algoritmických problémov.
Prechod od programovania v strojových jazykoch k štrukturovanej a potom k modulárnej
metóde v procedurálnych jazykoch, ako sú napr. Pascal, MODULA, C
alebo Java je zvýšením úrovne abstrakcie pri programovaní. Praktickým dôsledkom
je možnost riešenia zložitejších problémov rýchlejšie a spolahlivejšie.
Kľúčové slová:
scan
funkcionálne programovanie
referencná transparentnosť
algebraické typy
Haskell
length
concat
init
last
tail
head
drop
take
dropWhile
Obsah:
- 1 Koncepcia funkcionálneho programovania -7-
1.1 Jazyky programovania -8-
1.1.1 Procedurálne jazyky -8-
1.1.2 Deklaratívne jazyky -9-
1.2 Funkcie -12-
1.2.1 Matematický pojem funkcie -12-
1.2.2 Referencná transparentnost -14-
1.2.3 Zápis funkcií v jazyku Haskell -15-
1.2.4 Typ funkcie -17-
1.2.5 Mechanizmus aplikácie funkcie -20-
1.2.6 Stratégie výpoctu -25-
1.2.7 Dosiahnutelnost výsledku výpoctu -29-
1.2.8 Operácie a funkcie -32-
1.2.9 Tvar funkcionálneho programu -35-
1.3 Príklady -37-
2 Typy -41-
2.1 Údajové typy -42-
2.1.1 Druhy algebraických typov -45-
2.1.2 Definícia algebraických typov v jazyku Haskell -47-
2.1.3 Základné typy jazyka Haskell -47-
2.1.4 Syntaktická podpora pre základné typy -48-
2.1.5 Dalšie užitocné algebraické typy -49-
2.1.6 Synonymá typov -50-
2.2 Abstraktné typy -51-
2.3 Príklady -54-
3 Spôsoby definície funkcií -57-
3.1 Definícia podmienenými výrazmi -58-
3.2 Definícia viacerými rovnicami -60-
3.3 Lokálne definície -65-
3.4 Funkcie pre prácu so zoznamami -66-
3.4.1 Funkcia length -66-
3.4.2 Operácia zretazenia zoznamov (++) -66-
3.4.3 Zretazenie zoznamu zoznamov concat -67-
3.4.4 Operácia indexovania (!!) -67-
3.4.5 Funkcie head a tail -68-
3.4.6 Funkcie init a last -69-
3.4.7 Funkcie take a drop -70-
3.4.8 Funkcie map a filter -72-
3.4.8.1 Funkcie takeWhile a dropWhile -74-
3.4.9 Funkcie foldl a foldr -75-
3.4.10 Funkcie foldl1 a foldr1 -77-
3.4.11 Funkcia scan -78-
3.4.12 Funkcie zip a zipWith -80-
3.5 Príklady -82-
4 Podpora abstrakcie -87-
4.1 Parametrický polymorfizmus -88-
4.2 Funkcie vyššieho rádu a sekcie -98-
4.3 Aritmetické postupnosti a množinové abstrakcie -101-
4.4 Príklady -107-
O súboroch cookie na tejto stránke
Súbory cookie používame na funkčné účely, na zhromažďovanie a analýzu informácií o výkone a používaní stránky.