cwbe coordinatez:
101
63540
2076399
3671716

ABSOLUT
KYBERIA
permissions
you: r,
system: public
net: yes

neurons

stats|by_visit|by_K
source
tiamat
K|my_K|given_K
last
commanders
polls

total descendants::
total children::72
14 ❤️


show[ 2 | 3] flat


k_[uz_vsetko...0
Mr. Darcy0
shady0
0
aarin0
Abe1
pink-fu1
VitaminC1
Kuzmics1
ulkas1
dno1
G1
soc1
visby1
maniac1
repelent1
ea1
ziman1
just_minding...1
fero1
jurov1
kiwo1
phoenyx1
Indalam2
risko2
maaca2
hexo2
wq4
afross4
Quentin4
XcomeX4
mateno5
k0fein5
blurec5
urza6
s76
ksyz6
pyxel6
borg6
azazel_the_r...6
Mito6
stick7
soonic9
icyak9
C9
darmozrac9
vygidor9
Ywettka10
tlamer11
hm13
-sXero-15
jinx16
fefo16
vicdar3n16
chelly18
lupus yonderboy18
83120
paskudnyk20
grzegorz brz...21
siddharta[Lo...26
jaRo30
skurva.30
piece_of_IT33
goldenslumbers40
mono42
daan44
teflon45
smrtak46
coffee56
Tweety58
nacks60
plachta64
A.boy65
Neprocedurálne programovanie
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.


lisp_cycles.png

Č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ý:

function fib(n)
begin
  (a, b) = (0, 1)
  for i in [1..n] do (a, b) = (b, a+b)
  return a
end

Čí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:

fib(1, 1).
fib(2, 1).
fib(N, F) :-
  N > 2,
  pred(N, N1, N2),
  fib(N1, FN1),
  fib(N2, FN2),
  F is FN1 + FN2.
pred(N, N1, N2) :-
  N1 is N - 1,
  N2 is N - 2.

Čí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ší:

fib 1 = 1
fib 2 = 1
fib n = fib (n-1) + fib (n-2)

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:

qsort [] = []
qsort (x:xs) = qsort [ y | y<-xs, y < x] ++ [x] ++ qsort [ y | y <- xs, y >= x ]

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 :)


  submission:: :) :: NEW (0 children )   (Thunder Perfect Mind)
  submission:: :) :: NEW (0 children )  1 ❤️ (ziman)
  submission:: λ-cats :: NEW (0 children )   NEW DESCENDANT  2 ❤️ (ziman)
  submission:: λoobies ;) :: NEW (2 children )   NEW DESCENDANT   (ziman)
  submission:: 01.05.2026-15:38:29 :: NEW (0 children )   (aarin)
  submission:: 02.12.2010-20:34:36 :: NEW (0 children )   (ziman)
  submission:: 04.03.2008-22:34:31 :: NEW (3 children )   NEW DESCENDANT  3 ❤️ (ziman)
  submission:: 04.12.2009-1:11:40 :: NEW (0 children )   (ziman)
  submission:: 05.02.2008-22:24:27 :: NEW (1 children )   NEW DESCENDANT  1 ❤️ (wadim)
  submission:: 05.08.2013-14:30:16 :: NEW (1 children )   NEW DESCENDANT  2 ❤️ (ziman)
  submission:: 06.05.2023-7:40:15 :: NEW (0 children )  1 ❤️ (aarin)
  submission:: 06.12.2009-18:37:17 :: NEW (0 children )  1 ❤️ (Mr. Darcy)
  submission:: 07.02.2008-21:43:21 :: NEW (1 children )   NEW DESCENDANT   (Thunder Perfect Mind)
  submission:: 07.10.2015-23:48:38 :: NEW (0 children )  1 ❤️ (Thunder Perfect Mind)
  submission:: 08.02.2008-16:04:20 :: NEW (1 children )   NEW DESCENDANT   (piece_of_IT)
  submission:: 08.04.2010-11:28:11 :: NEW (1 children )   NEW DESCENDANT   (ziman)
  submission:: 09.06.2011-0:49:06 :: NEW (0 children )   (ziman)
  submission:: 11.03.2009-0:55:28 :: NEW (1 children )   NEW DESCENDANT   (ziman)
  submission:: 11.04.2009-17:08:31 :: NEW (0 children )   NEW DESCENDANT  7 ❤️ (ziman)
  submission:: 11.09.2011-14:54:57 :: NEW (0 children )   (ziman)
  submission:: 12.02.2008-13:10:47 :: NEW (1 children )   NEW DESCENDANT   (ulkas)
  submission:: 13.11.2008-23:18:12 :: NEW (5 children )   NEW DESCENDANT   (hexo)
  submission:: 14.03.2018-14:03:37 :: NEW (1 children )   NEW DESCENDANT  2 ❤️ (azazel_the_real_one{outKasted}{outKasted})
  submission:: 14.04.2012-15:00:52 :: NEW (0 children )  2 ❤️ (ziman)
  submission:: 16.05.2008-2:01:14 :: NEW (0 children )   NEW DESCENDANT   (C)
  submission:: 17.05.2010-22:17:59 :: NEW (2 children )   NEW DESCENDANT  3 ❤️ (Thunder Perfect Mind)
  submission:: 20.01.2009-18:49:57 :: NEW (1 children )   NEW DESCENDANT   (Thunder Perfect Mind)
  submission:: 20.08.2022-16:34:08 :: NEW (1 children )   NEW DESCENDANT   (just_minding_my_business)
  submission:: 21.01.2010-22:22:33 :: NEW (3 children )   NEW DESCENDANT  1 ❤️ (Quentin)
  submission:: 22.07.2014-22:26:39 :: NEW (0 children )   (azazel_the_real_one{outKasted}{outKasted})
  submission:: 22.12.2009-16:05:57 :: NEW (0 children )   (ziman)
  submission:: 25.10.2015-23:44:06 :: NEW (0 children )   (azazel_the_real_one{outKasted}{outKasted})
  submission:: 27.06.2012-15:42:20 :: NEW (1 children )   NEW DESCENDANT  2 ❤️ (831)
  submission:: 29.01.2015-12:38:22 :: NEW (1 children )   NEW DESCENDANT   (Thunder Perfect Mind)
  submission:: 29.11.2017-22:00:03 :: NEW (0 children )   (aarin)
  submission:: 30.08.2014-14:33:23 :: NEW (1 children )   NEW DESCENDANT  1 ❤️ (ziman)
  submission:: Ako ucit stredoskolakov Computer *Science* :: NEW (0 children )   (ziman)
  submission:: And then there's Haskell... :: NEW (1 children )   NEW DESCENDANT  6 ❤️ (repelent)
  submission:: asynchronni programovai v C# a F# :: NEW (0 children )   (urza)
  submission:: Binárny strom < O(N) :: NEW (1 children )   NEW DESCENDANT   (ziman)
  submission:: Cartesian Closed Comic :: NEW (0 children )   (ziman)
  submission:: Don Stewart on Haskell and Concurrency :: NEW (0 children )   NEW DESCENDANT   (ziman)
  submission:: Easy Forth :: NEW (1 children )   NEW DESCENDANT  4 ❤️ (aarin)
  submission:: Erlang sa inšpiruje :: NEW (2 children )   NEW DESCENDANT  1 ❤️ (ziman)
  submission:: ever-to-excel :: NEW (4 children )   NEW DESCENDANT  20 ❤️ (ziman)
  submission:: fix error :: NEW (0 children )   NEW DESCENDANT   (ziman)
  submission:: Google's ICFP 2010 experience report on Haskell :: NEW (0 children )   (ziman)
  submission:: Haskell help :: NEW (2 children )   NEW DESCENDANT  4 ❤️ (cocteau)
  submission:: Have you played with your monads? :: NEW (1 children )   NEW DESCENDANT   (ziman)
  submission:: How Lisp will save the world :: NEW (1 children )   NEW DESCENDANT  3 ❤️ (ziman)
  submission:: HTML + CSS3 is Turing complete :: NEW (0 children )  1 ❤️ (repelent)
  submission:: Church - functional probabilistic programming language :: NEW (1 children )   NEW DESCENDANT  2 ❤️ (Thunder Perfect Mind)
  submission:: ICFP Contest 2012 :: NEW (0 children )   (ziman)
  submission:: Is Haskell a Good Choice for Web Applications? :: NEW (0 children )   NEW DESCENDANT   (ziman)
  submission:: John Carmack on Haskell and FP :: NEW (0 children )   (ziman)
  submission:: Land Of Lisp :: NEW (1 children )   NEW DESCENDANT   (ziman)
  submission:: Linky v topicu :: NEW (0 children )   NEW DESCENDANT  1 ❤️ (ziman)
  submission:: Otázka do pléna :: NEW (1 children )   NEW DESCENDANT   (jurov)
  submission:: picat :: NEW (0 children )   (ulkas)
  submission:: Programming salaries :: NEW (0 children )   NEW DESCENDANT   (ziman)
  submission:: railway oriented programming :: NEW (1 children )   NEW DESCENDANT   (ulkas)
  submission:: Reverse state monad :: NEW (0 children )   (ziman)
  submission:: SBCL with readline REPL :: NEW (0 children )   (Mr. Darcy)
  submission:: Turingov stroj :: NEW (1 children )   NEW DESCENDANT   (piece_of_IT)
  submission:: Type-driven testing in Haskell :: NEW (0 children )   NEW DESCENDANT   (ziman)
  submission:: ucebnice Lispu :: NEW (0 children )   NEW DESCENDANT   (maaca)
  submission:: Ukážka nekonvenčnej praktickej aplikácie :: NEW (1 children )   NEW DESCENDANT  1 ❤️ (piece_of_IT)
  submission:: Why Haskell Is Great :: NEW (0 children )  16 ❤️ (repelent)
  submission:: Writing An Interpreter In 15 Minutes With Ruby :: NEW (0 children )   NEW DESCENDANT   (sine)
  submission:: Zipper :: NEW (0 children )   NEW DESCENDANT   (ziman)
  link:: ¿ DSL - Domain Specific Languages ? ::   NEW LINK (XcomeX)
  link:: The world just got beautifull :D ::   NEW LINK (ntn)
  link:: Scala ::   NEW LINK (Thunder Perfect Mind)
  link:: Coq tutorials ::   NEW LINK (ziman)
  link:: Hylomorfizmy v C++ ::   NEW LINK (ziman)
  link:: 25.04.2009-16:14:38 ::   NEW LINK (Thunder Perfect Mind)
  link:: Koans of FP ::   NEW LINK (ziman)


There are currently 9955 K available in
2nd Guild's K-treasury.




get 1 🦆 for 5 🐘
get 1 🐘 for 1 🦆




dendrite ¿ DSL - Domain Specific Languages ?
dendrite The world just got beautifull :D
dendrite Scala
dendrite Coq tutorials
dendrite Hylomorfizmy v C++
dendrite 25.04.2009-16:14:38
dendrite Koans of FP
axone forumz