Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
statnice:bakalar:b4b36fup [2025/05/27 11:13] – external edit 127.0.0.1statnice:bakalar:b4b36fup [2026/06/06 14:57] (current) – [Church‑Rosserova věta] knedl1k
Line 14: Line 14:
 ===== Čisté funkce =====   ===== Čisté funkce =====  
 **Čisté funkce (pure functions), jejich výhody a nevýhody.**   **Čisté funkce (pure functions), jejich výhody a nevýhody.**  
-Čistá funkce je taková, která (1) vrací vždy stejný výsledek pro stejné hodnoty argumentů a (2) nevytváří vedlejší efekty – tedy nečte ani nemění nic mimo svůj vnitřní rozsah; nesahá na globály, neloguje, nedělá I/O a ani nemutuje objekty předané referencí či pointerem.+Čistá funkce je taková, která  
 +(1) vrací vždy stejný výsledek pro stejné hodnoty argumentů a  
 +(2) nevytváří vedlejší efekty – tedy nečte ani nemění nic mimo svůj vnitřní rozsah; nesahá na globály, neloguje, nedělá I/O a ani nemutuje objekty předané referencí či pointerem.
 ==== Výhody čistých funkcí ==== ==== Výhody čistých funkcí ====
 <markdown> <markdown>
Line 156: Line 158:
  
 === Strom === === Strom ===
 +
 Stromové struktury můžeme reprezentovat za pomocí vnořených seznamů, například uzel lze definovat jako seznam Stromové struktury můžeme reprezentovat za pomocí vnořených seznamů, například uzel lze definovat jako seznam
 `'(data left right)` `'(data left right)`
Line 469: Line 472:
 2. Normal‑order evaluace vždy skončí v normální formě, pokud existuje. 2. Normal‑order evaluace vždy skončí v normální formě, pokud existuje.
  
-=== Y‑kombinátor === <markdown>+=== Y‑kombinátor ===
 `Y` je **fixpoint combinator**, který umožní definovat rekurzi bez pojmenování. `Y` je **fixpoint combinator**, který umožní definovat rekurzi bez pojmenování.
  
Line 500: Line 503:
   * *Strict/applicative* (Racket, JS) – je potřeba `Z`‑kombinátor (lazy fixpoint).   * *Strict/applicative* (Racket, JS) – je potřeba `Z`‑kombinátor (lazy fixpoint).
  
-Stručně: **`Y` přidá rekurzi** tím, že každé funkci vrátí její vlastní výsledek jako argument. +Stručně: **`Y` přidá rekurzi** tím, že každé funkci vrátí její vlastní výsledek jako argument.
-+
-> </markdown>+
  
  
Navigation

Playground

QR Code
QR Code statnice:bakalar:b4b36fup (generated for current page)