Hlavní navigace

Odpověď na názor

Odpovídáte na názor k článku Programovací jazyk Clojure 8: identity, stavy, neměnné hodnoty a referenční typy.

ava
ava (neregistrovaný) ---.cust.vodafone.cz
31. 7. 2012 20:33 Nový

Funkcionalnost Clojure

celé vlákno

Predem se musim priznat, ze jsem se nesoustredil 100% na obsah vsech dilu, a vubec nejsem odbornik na FP, ale jsem trochu na rozpacich z toho, ze zaroven mam pocit, ze je zde Clojure prezentovan jako pokud mozno ciste funkcionalni jazyk, a zaroven je v tomto serialu venovano obrovske mnozstvi prostoru analogiim globalnich promennych, referenci u kterych se da zmenit kam ukazuji atp.. K cemu mi je, ze reference ukazuje na immutable hodnoty, kdyz ta "immutable" hodnota muze mit jako prvek referenci, ktera se tedy zase muze menit? (pokud nelze, omlouvam se). To uz jsem se vratil zpet vicemene k Jave nebo C, kde muzu promennou mit const(final) nebo nemusim, podle toho je jakoby immutable nebo neni (prosim berte s rezervou, jde o myslenku, nikoliv o to, ze ty jazyky to umoznuji porusovat). Neni snad uhelnym kamenem funkcionalniho programovani referencni transparentnost vsech funkci? To, ze jsou "pure", tedy pro stejne vstupni parametry vzdy vrati stejnou hodnotu, nemaji stav, nekonaji zadne side-effecty? Myslel jsem, ze FP povazuje "stav" za zlo, ktere komplikuje rozvazovani nad tim, co program dela, ztezuje znovupouzitelnost funkci jako stavebnich bloku, a v pripade paralelnich programu je puvodcem observable nondeterminismu (race conditions), na ktery nadavaji svorne programatori (mam tam nekde chybu, ale kdyz to pustim v debuggeru, tak to zacne fungovat spravne) i uzivatele(obcas to spocita neco jinyho nez ma)? Je prijemne, ze se tvurci Clojure alespon pokouseji priciny nekterych problemu se stavem pojmenovat (synchronnost pristupu k hodnotam, koordinovanost), ale stale je to stav. Se stavem uz mohu programovat v podstate imperativne, stejne jako v jave, jen Clojure reference jsou o trochu chytrejsi.

Tim samozrejme nechci tvrdit, ze Clojure nema spoustu jinych dalsich zajimavych vlastnosti. Ale dosud mi prijde, ze funkcionalni programovani je zde spise dobrovolne, se vsemi vyhodami i nevyhodami, ktere z toho plynou (to, ze zrejme nedokazu z definice funkce v Clojure poznat, jestli je pure, mi prijde jako jedna z nejvetsich nevyhod).

Pokud jsem ve zbrklosti napsal nesmysly, omlouvam se, priste muzu byt duslednejsi :-)

   
Chcete přispět jako registrovaný uživatel? Přihlaste se ke svému účtu.
Ochrana proti spamovacím robotům. Odpovězte prosím na následující otázku: Jaký je letos rok?
 

Pravidla pro diskutující

Přidáním čtenářského příspěvku do diskusí či fóra souhlasíte s tím, že budete dodržovat následující pravidla. Při jejich hrubém porušení se vystavujete riziku smazání příspěvku, jeho modifikaci, v krajním případě i zablokování přístupu do diskusí.

Redakce ze zásady nezasahuje do čtenářských diskusí a zavazuje se, že nebude mazat ani modifikovat příspěvky, kromě případů, kdy tyto porušují některé z následujících pravidel. V takové situaci je na zvážení redakce, zda příspěvek modifikuje s viditelným upozorněním, či přímo smaže. Redakce nikdy nemaže „nesouhlasné komentáře“ jen proto, že jsou nesouhlasné. Vítáme střet názorů, ale vždy v rámci slušné a kultivované debaty.

Příspěvky nesmí obsahovat:

  1. Vulgární či hrubé výrazy.
  2. Urážlivé výroky na adresu druhé osoby či skupiny osob.
  3. Texty, které mají za cíl jen vyprovokovat emotivní reakci (trolling).
  4. Rasové útoky či útoky na jakoukoliv jinou menšinu či skupinu obyvatel.
  5. Komerční nabídky a affiliate odkazy.
  6. Odkazy na warez, sériová čísla, licenční kódy, pornografii a další nevhodný materiál stejně jako žádosti o poskytnutí tohoto obsahu.
  7. Prokazatelně protiprávní obsah.

Informace o soukromí: U všech přidaných komentářů provozovatel ukládá IP adresu a hostname odesílatele. U neregistrovaných uživatelů se na webu zobrazuje část hostname, případně IP adresy, neumožňující identifikovat konkrétní počítač.

Povolené značky XHTML: a, br, code, em, li, ol, p, pre, strong, sub, sup, ul