total descendants:: total children::72 14 ❤️
|
Fórum určené na výmenu vedomostí, skúseností, zaujímavostí, tipov a trikov týkajúcich sa neprocedurálneho/deklaratívneho programovania a príslušných jazykov. ![]()
Čo je neprocedurálne programovanie alias stručný náznak špičky ľadovca
Neprocedurálne programovanie, inak nazývané aj deklaratívnym, sa nesústreďuje na postupnosť krokov, ako sa dorátať k výsledku, skôr vymenúva vzťahy a fakty, na základe ktorých počítač "sám" odvodí výsledok. Nepozná pojem premennej v zmysle kusa pamäte, nepoužíva priraďovací príkaz (pretože nepozná premenné). Jeho hlavným nástrojom býva rekurzia.Predstavme si, že máme zadanú nejakú úlohu, napríklad vypočítať n-té Fibonnacciho číslo. Klasický procedurálny prístup by bol nasledovný: Čítame: Vyhraď si premenné a, b, inicializuj ich. n-krát prepíš premenné a, b (nejako) vypočítanými hodnotami. V premennej a máš výsledok. V Prologu by to vyzeralo inak: Čítame: Prvé Fibonnacciho číslo je jedna. Druhé Fibonnacciho číslo je jedna. N-té Fibonnacciho číslo je F, ak N je väčšie než dva, predchodcami N sú N1, N2, príslušné prvky postupnosti sú FN1, FN2 a F je FN1+FN2. N1 a N2 sú predchodcami čísla N, ak N1 je N-1 a N2 je N-2. Funkcionálny jazyk Haskell je ešte priamočiarejší: Podstatou teda je, že neprocedurálnym jazykom nevravíme počítaču, aké kroky má podstúpiť pri hľadaní výsledku, ale opisujeme vzťahy, aké platia a je na ňom, aby ich vyriešil a odpovedal na položenú otázku. Neprocedurálne programovanie je ale veľmi široká téma, vyžaduje navyše dosť odlišný pohlad na problém, preto sa tu dá len sotva niečo načrtnúť, tobôž nie vysvetliť; možné miesto, kde začať a širší pokec o neprocedurálnom (špeciálne funkcionálnom programovaní) sa dá nájsť napríklad na Haskell wiki. Chuťovka: Quicksort v Haskelli:
Užitočné linky a zdroje
.: Tutoriály :.A Gentle Introduction to Haskell — klasický Haskellovský tutoriál Real World Haskell — praktický Haskell Learn You a Haskell — veselo ilustrovaný úvod do Haskellu ;) .: Články :. Zipper — strom futrom von Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire — článok o bežných rekurzívnych schémach Algorithm + Strategy = Parallelism — Ako rozumne paralelizovať .: Video :. Simon Peyton-Jones — A Taste of Haskell — Dvojdielny záznam z prednášky o Haskelli spolu so slajdmi Structure and Interpretation of Computer Programs — prednáška od dvojice pánov Hal Abelson & Gerald Jay Sussman .: Ostatné :. 99 Prologovských, Haskellovských a Lispovských problémov, väčšina riešená Zygohistomorfické prepromorfizmy Project Euler — zbierka matematicko-programátorských úložiek, výborná na precvičovanie základov obzvlášť funkcionálnych jazykov .: Spriaznené fóra :. Scala programming language ...a ďalšie očakávam v príspevkoch :) |
axone forumz |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||