Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
fp:uvod_do_fp [2011/05/15 10:57] petr [Úvod do funkcionálního programování] |
fp:uvod_do_fp [2011/10/05 20:05] (aktuální) petr [Čistota] |
||
---|---|---|---|
Řádek 106: | Řádek 106: | ||
* Komunikovat po síti. | * Komunikovat po síti. | ||
* Používat a měnit velká pole. | * Používat a měnit velká pole. | ||
- | * V praxi se používají 2 přístupy: | + | * V praxi se používají tyto přístupy: |
- Dovolí se vedlejší efekty funkcí (OCaml, F#). To vyžaduje větší disciplínu programátora. Nejde dohromady s líným vyhodnocováním. | - Dovolí se vedlejší efekty funkcí (OCaml, F#). To vyžaduje větší disciplínu programátora. Nejde dohromady s líným vyhodnocováním. | ||
+ | - Unikátní typy, kde je překladačem ošetřeno, že se problematické hodnoty (např. //file handle//) mohou použít jen jednou. | ||
- Vedlejší efekty se popíší pomocí **monád** (Haskell). Tento přístup zachovává čistotu a je konzistentní s líným vyhodnocováním. //Zároveň lze z kódu jasně vyčíst, kde se provádějí jaké "nečisté" akce.// | - Vedlejší efekty se popíší pomocí **monád** (Haskell). Tento přístup zachovává čistotu a je konzistentní s líným vyhodnocováním. //Zároveň lze z kódu jasně vyčíst, kde se provádějí jaké "nečisté" akce.// | ||