Coconut ======= .. toctree:: :maxdepth: 3 FAQ HELP DOCS CONTRIBUTING .. toctree:: :maxdepth: 1 HELP DOCS FAQ Coconut (`coconut-lang.org`__) je varianta jazyka `Python `_, která k syntaxi Pythonu **přidává** nové vlastnosti pro jednoduché a elegantní Pythonické **funkcionální programování**. __ Coconut_ .. _Coconut: http://coconut-lang.org/ Coconut je vyvíjen na `GitHub `_ a hostován na `PyPI `_. Instalace --------- Instalace Coconut je stejně snadná jako otevření konzoly s promptem a zadání:: pip install coconut načež máte celý svět Coconut u svých nohou. Ukázky kódu ----------- **Usměrnění programu** (pipeline-style programming): .. code-block:: coconut "hello, world!" |> print **Pohlednější lambda**: .. code-block:: coconut (x) -> x ** 2 **Částečná aplikace** (partial application): .. code-block:: coconut range(10) |> map$((x) -> x ** 2) |> list **Porovnání předlohy** (pattern-matching): .. code-block:: coconut match [head] + tail in [0, 1, 2, 3]: print(head, tail) **Rozložené přiřazení** (destructuring assignment): .. code-block:: coconut {"list": [0] + rest} = {"list": [0, 1, 2, 3]} **Infixová notace**: .. code-block:: coconut 5 `mod` 3 == 2 **Operátorové funkce**: .. code-block:: coconut range(15) |> map$((*)$(2)) |> list **Kompozice funkcí**: .. code-block:: coconut (f .. g .. h)(x, y, z) **Líné seznamy**: .. code-block:: coconut (| first_elem() |) :: rest_elems() **Paralelní programování**: .. code-block:: coconut range(100) |> parallel_map$((**)$(2)) |> list **Optimalizace koncové rekurze**: .. code-block:: coconut def factorial(n, acc=1): case n: match 0: return acc match _ is int if n > 0: return factorial(n-1, acc*n) else: raise TypeError("the argument to factorial must be an integer >= 0") **Algebraické datové typy**: .. code-block:: coconut data Empty() data Leaf(n) data Node(l, r) def size(Empty()) = 0 @addpattern(size) def size(Leaf(n)) = 1 @addpattern(size) def size(Node(l, r)) = size(l) + size(r) size(Node(Empty(), Leaf(10))) == 1 Užitečné odkazy --------------- Podporu pro své první kroky v prostředí Coconut naleznete na těchto odkazech: * `Coconut `_ * `Tutoriál `_: Dobrým výchozím bodem pro začátečníka v Coconut je jeho tutorial s případovými studiemi. * `Dokumentace `_: Hledáte-li informaci o konkretní entitě, zkuste referenční dokumentaci jazyka Coconut. * `FAQ `_: Chcete-li se zeptat, pro koho je Coconut určen a zda byste jej měl používat, navštivte Frequently Asked Questions . * `Create a New Issue `_: If you're having a problem with Coconut, creating a new issue detailing the problem will allow it to be addressed as soon as possible. * `Gitter `_: For any questions, concerns, or comments about anything Coconut-related, ask around at Coconut's Gitter, a GitHub-integrated chat room for Coconut developers. Poznámka: Pokud výše uvedené linky nechodí, zkuste `mirror `_.