Názory ke článku Co je to funkcionální programování – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Názory ke článku Co je to funkcionální programování – Programujte.comNázory ke článku Co je to funkcionální programování – Programujte.com

 

Názory ke článku Co je to funkcionální programování

Farundel   NOVÝ
12. 4. 2006

Diky za zajimavy clanek...o funkcionalnim programovani uz jsem slychal, ale doposud jsem nemel moznost si o nem nic precist...teda, spis se mi nechtelo, ale ted, kdyz mi clanek pristal rovnou pod nos... ;o)

Mel bych malou poznamku k prikladu vypoctu souctu druhych mocnin od 1 do n...ta funkce se mi moc nelibi...pokud jsem neco nepochopil spatne, jsou v ni chyby...nemela by vypadat spis nejak takhle?

int sumsq (int n) # tady byl strednik
{
int s, k;
s = 0;
for (k = 1; k<=n; k++) # tady byl prehozen druhy a treti parametr cyklu
s = s + k*k;
return s; # tady by nemelo byt return sumsq
}

A pak takovy nepodstatny detail - v odstavci o Lispu zustal kod specialniho znaku "&dnash;".

Jeste jednou diky za clanek, tesim se na pokracovani...

libor   NOVÝ
13. 4. 2006

Dekuji za pripominky. Ta ukazka funkce byla narychlo prepsana z Pascalu do C, takze se tam objevily chyby. Uz jsem je opravil.
--
Libor

gody_001   NOVÝ
30. 3. 2007

Jen bych chtel podotknout, ze pokud by to nekdo chtel brat opravdu vazne s Haskellem, tak by se asi mel podivat na elektronicky text nazyvany "Gentle introduction to Haskell", ktery se vyskytuje na strankach http://www.haskell.org/tutorial/. Zajimava je asi hlavne cast nazvana prelude - tam je mozne se docist, jak jsou udelane preddefinovane fce, takze se na tom clovek celkem hodne nauci.

LameonMuni   NOVÝ
3. 7. 2007

I přesto, že si velice vážím Vašeho článku (tedy právě prostřednictvím něho mohu rychle pochopit Haskell => naučit se základy jednoho z deklarativních jazyků), dovoluji si "rýpnout" do příkladu, kde srovnáváte deklarativní a imperativní zápis jednoho problému.

Navrhl bych porovnávat Haskell (plný rekurzí) s příklady C také za použití rekurze.

Chápu, že níže uvedenou funkci nelze přímo srovnávat podle hlavičky (-: -> dva parametry, jejíž převedení na jeden parametr by vyžadovalo další funkci (v C++ přetížení), která až následně vrátí výsledek funkce sumsq (n, 0)

Výsledkem se stává (dle mého téměř bezcenného názoru) podobnější - porovnatelnější zápis.



int sumsq (int n, int s)
{
return n == 1 ? s+n : sumsq(n-1, s + n*n);
}


Měl bych na Vás otázku, jestli se tímto způsobem při minimalizaci zápisu kódu jazyka C dostaneme do situace, kdy nám bude "přebývat" právě jedna nebo žádná proměnná na jednu rekurzivní funkci navíc oproti zápisu jazyku Haskell. (ve výše uvedeném kódu můžeme vidět, že pomocnou proměnnou (parametr) int s, potřebujeme právě kvůli tomu, že C nedokáže vracet funkci - tedy jako Haskell)

Ještě bych dodal, že rozumím významu deklarativní programování, tedy postupu, kde píšeme popis řešení namísto imperativního programování, kde píšeme postup řešení. Tím jsem také došel k závěru (neříkám, že je správný), že nelze přímo srovnávat tyto typy programování.

Děkuji za Váš čas strávený, jak psaním tohoto kvalitního článku, tak za případné přečtení tohoto příspěvku. :-)

flukas   NOVÝ
9. 7. 2009

Reagoval na komentář od uživatele LameonMuni :
Stačí použít implicitní parametr a rekurze bude úplně stejně fungovat i v C++

int sumsq (int n, int s=0)

{
return n == 1 ? s+n : sumsq(n-1, s + n*n);
}

Přidej svůj názor

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo e-mailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Reaguješ na příspěvek:
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové názory e-mailem (pouze pro přihlášené)
Sleduj názory ke článku a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.



Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý