PDA

Prikaži potpunu verziju : Funkcionalni jezici


Twisterzemun
8.4.2015, 10:51
Sve vise i vise citam koliko su korisni funkcionalni jezici i da bi bilo korisno nauciti ih pored oop jezika jer ce, navodno, mnogo olaksati posao.

Trenutno radim u c#, i prilicno sam zadovoljan sa time sta sve mogu da uradim sa tim jezikom.

Zanima me da li stvarno gubim nesto bitno time sto jos nisam naucio nijedan funkcionalni jezik, kao sto su, f# i haskel?

Hoce li mi stvarno biti laksi zivot ako neke stvari budem pisao u funkcionalnom jeziku? Hocu li ubrzati rad aplikacije ili cu dobiti na nekim drugim stvarima?

Trenutno se interesujem za f# jer mogu lako da ga koristim u c#-u. Napravim dll i ubacim referncu, sa sve intellisens-om, dokumentacijom i slicno.

Teva
8.4.2015, 16:28
Meni su isto pričali da bi trebao da naučim funkcionalnu paradigmu kako bi popravio kodiranje pa sam uzeo izborni na fakultetu i naučio osnove Haskella i celokupnu funkcionalnu paradigmu.

Meni je bilo zanimljivo i interesantno :D Nešto preterano ne kodiram toliko u poslednje vreme ali dosta može da ti se popravi kodiranje i način razmišljanja posle funkcionalnih jezika. Ja konkretno sam izgubio nepotrebne gardove i promenljive koje sam imao tendenciju da ubacujem u kod, rekurzija mi je postala mnogo bliža nego što je bila (baš sam je mrzeo nekad, pre sam je razvijao sa stekom nego što sam je pisao xD ).

E sad koliko ćeš dobiti na brzini il nečemu drugom ne znam, ali mogu ti reći da se funkcionalni jezik prirodno paralelizuje pa je stoga ceo koncept prilično interesantan kad su u pitanju distribuirani sistemi i parelelizacija.

Al svakako ne šteti, a ako ne šteti, znači pomaže :D

doctor
8.4.2015, 17:55
Vredi barem se dotaći ovih jezika.

Trenutno na faksu radimo Veštačku inteligenciju i u sastavu predmeta je za praktičan rad predviđen Lisp. To je jedan od najstarijih jezika visokog nivoa i spada među funkcionalne jezike.
Lično se pre toga nisam susreo sa funkcionalnim jezicima ali sam kroz rad video da imaju ogroman potencijal za rešavanje komplikovanih problema sa malo koda u odnosu na proceduralne jezike. Rekurzija je prirodni način rada i razmišljanja a briga o resursima (menadžment memorije, recimo) nije bitna. Programiranje se svodi na efikasno rešavanje problema i implementaciju algoritma a ne baratanje memorijom, pointerima, objektima, itd.

Koliko sam do sada uspeo da vidim, ovi jezici su definitivno pogodniji za obradu matematičkih problema, problema koji uključuju obradu (ili paralelnu obradu) velikih količina podataka kao i implementaciju srodnih algoritama.
Eto, kod nas se VI radi u Lispu i mogu reći da je dosta algoritama lakše i mnogo brže implementirati u njemu nego u, recimo, C++). Ali, kao što sam rekao, ne koristi se za performance-critical programe.

Ali definitivno zahtevaju drugačiji način razmišljanja u odnosu na "klasične" jezike.

Kao što je Teva rekao, ako ništa drugo - rekurzija će ti postati bliža srcu nego ikada :D

brano88
8.4.2015, 20:50
Da. Svaki programer treba da ima programski jezik s kim radi i programski jezik ljubimca. Realno, tesko da ces se 'leba najesti od F#, ali moja ti je preporuka da ga ucis. Ja pored Jave koju koristim ucim ponekad Scalu i Clojure. To mi pomaze da bolje razumijem prednosti i mane pojedinih programskih jezika i njihovih paradigmi a pogotovo programskog jezika koji aktivno koristim (Java).

The Majk
9.4.2015, 17:49
Hteo sam da pitam sta mislite o phython-u kao jeziku koji pripada fukcionalnom programiranju? Vredi li ga uciti, da li oni koji su ga vec savladali koliko i za sta mogu da ga iskoriste?

Teva
9.4.2015, 22:36
Python koliko ja znam nije funkcionalni jezik već skript jezik... Al je kul jezik ^_^ Samo malo smara ono obavezno indentovanje xD

Twisterzemun
10.4.2015, 9:13
Python je bukvalno sve u jednom, objektno orijentisani, imperativni, funkcionalni i proceduralni jezik. Mocan je jezik, google ga koristi za pretrazivanje podataka npr. Dosta se koristi za back end. Ako vec znas neki jezik kao sto su c# i/ili java, onda mislim da bi ti bolje bilo da uzmes neki cisto funkcionalni jezik kao sto su f#, haskell, scala i slicno...

brano88
16.4.2015, 11:02
Python koliko ja znam nije funkcionalni jezik već skript jezik... Al je kul jezik ^_^ Samo malo smara ono obavezno indentovanje xD

Python JESTE funkcionalan jezik. Ne znam stvarno u cemu je fazon s tim: "skript jezik". Sjecam se da me je jednom neki "random" lik ubjedjivao kako je PHP "skript jezik" a ne programski jezik. :boodala: Sto se tice druge recenice, potpuno se slazem. Funkcionalnost Python koda zavisi od pravilnog "indentovanja" sto je po meni totalno bezveze.

Teva
16.4.2015, 21:40
Tvorac samog Pythona njega ne smatra za funkcionalni jezik, to što ima kakvu takvu podršku za funkcionalno programiranje ne znači da je jezik za to, ko kad bi vozio krompir na pijac za skuterom od 50 kubika a ne teretnim vozilom, to što može da ima gepek ne znači da je teretno vozilo. Stoga ne bih nazvao Python funkcionalnim jezikom.

Funkcionalna paradigma je sama po sebi veoma moćna i sad se uvodi (ili se uvela) u većinu mejnstrim jezika. Java 8 podržava lambde, što faktički znači da ti možeš da napišeš lambda račun u Javi, lambda račun je osnova funkcionalnih jezika, da li to znači da je i Java funkcionalna?

Za skript jezik, okej, to sam malo pogrešio, ja lično ne volim skript jezike al to je subjektivna stvar :)