Imperative i functional programming

poruka: 5
|
čitano: 2.538
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
15 godina
neaktivan
offline
Imperative i functional programming

Može li mi netko objasniti što su ova dva tipa programiranja, što je "state" i reći što je dok radim u C# koristim?

Čitao sam nešto po wikipedii ali malo razumijem.

Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
Re: Imperative i functional programming
King of Games kaže...

Može li mi netko objasniti što su ova dva tipa programiranja, što je "state" i reći što je dok radim u C# koristim?

Čitao sam nešto po wikipedii ali malo razumijem.

Funkcionalno programiranje se, kao sto mu naslov govori, vrti oko funkcija. Dakle, stil programiranja je takav da se trudis razbiti probleme u malene black-boxeve koji imaju jasno definiran ulaz i izlaz, ali se ne brines previse o tome _kako_ ulaz postaje izlaz. Haskell i Erlang su predvodnici ovog stila.

 

Imperativno programiranje je holy-grail dobro napisanog koda, i podskup je proceduralnog programiranja. Procedure su funkcije koje teoretski ne vracaju vrijednost, vec modificiraju parametre. Vecina proceduralnih jezika dopusta oznacavanje parametara sa 'in' i 'out' (sto je u praksi const i ne const). Imperativi su, u ovom konteksu, procedure koje ne primaju parametre i ne vracaju nikakvu vrijednost - sto logicki znaci da se svi podaci cuvaju u nekom unikatnom kontekstu/okruzenju, odnosno 'stateu'. Vecina funkcionalnih jezika dopusta proceduralni stil, no glavni predstavnik je PL/SQL i OpenGL specifikacija.

 

"State" je, kao sto sam naveo, bazicno skup varijabli. Procedure ili imperativi onda rade razlicitu stvar, ovisno o tome kako je state postavljen.

 

C# je objektno orijentiran jezik - dakle stil programiranja je takav da "razbijes" problem na manje probleme, od koji svaki ima jasno definirana stanja i ponasanja, te medjusobna interakcija tih objekata rijesava originalni problem.

We are the ones that will open your mind, leave the weak and the haunted behind
Poruka je uređivana zadnji put pet 27.4.2012 16:21 (Deus ex machina).
15 godina
neaktivan
offline
Re: Imperative i functional programming
Deus ex machina kaže...

Funkcionalno programiranje se, kao sto mu naslov govori, vrti oko funkcija. Dakle, stil programiranja je takav da se trudis razbiti probleme u malene black-boxeve koji imaju jasno definiran ulaz i izlaz, ali se ne brines previse o tome _kako_ ulaz postaje izlaz. Haskell i Erlang su predvodnici ovog stila.

 

Imperativno programiranje je holy-grail dobro napisanog koda, i podskup je proceduralnog programiranja. Procedure su funkcije koje teoretski ne vracaju vrijednost, vec modificiraju parametre. Vecina proceduralnih jezika dopusta oznacavanje parametara sa 'in' i 'out' (sto je u praksi const i ne const). Imperativi su, u ovom konteksu, procedure koje ne primaju parametre i ne vracaju nikakvu vrijednost - sto logicki znaci da se svi podaci cuvaju u nekom unikatnom kontekstu/okruzenju, odnosno 'stateu'. Vecina funkcionalnih jezika dopusta proceduralni stil, no glavni predstavnik je PL/SQL i OpenGL specifikacija.

 

"State" je, kao sto sam naveo, bazicno skup varijabli. Procedure ili imperativi onda rade razlicitu stvar, ovisno o tome kako je state postavljen.

 

C# je objektno orijentiran jezik - dakle stil programiranja je takav da "razbijes" problem na manje probleme, od koji svaki ima jasno definirana stanja i ponasanja, te medjusobna interakcija tih objekata rijesava originalni problem.

  Ok, ok... nisam siguran da sam shvatio pa želim napisati jedan sample program pa ti vidi jeli to to.

Evo ovo su dva trivialna programa za zbrajanje dvije variable i pohranjivanje zbroja u treću:

 

//FUNKCIONALNO:

main ()

{

  int a, b, c;

  c = zbroji(a,b)

}

 

int zbroji (a, b)

{

  return a+b;

}

 

//IMPERATIVNO:

main ()

{

  int a, b, c;

  zbroji();

}

 

void zbroji()

{

  c = a + b;

}

16 godina
neaktivan
offline
Re: Imperative i functional programming
King of Games kaže...

  Ok, ok... nisam siguran da sam shvatio pa želim napisati jedan sample program pa ti vidi jeli to to.

Evo ovo su dva trivialna programa za zbrajanje dvije variable i pohranjivanje zbroja u treću:

Meni se pak cini da si shvatio ;-)

Iako ti program nece raditi jer su a,b,c nedostupni. Punokrvni imperativni program bi te varijable definirao kao globalne, ili kad se vec sluzis C-om - napravio struct "State" sa a,b,c i onda globalno definirao taj state.

We are the ones that will open your mind, leave the weak and the haunted behind
15 godina
neaktivan
offline
Re: Imperative i functional programming
Deus ex machina kaže...
King of Games kaže...

  Ok, ok... nisam siguran da sam shvatio pa želim napisati jedan sample program pa ti vidi jeli to to.

Evo ovo su dva trivialna programa za zbrajanje dvije variable i pohranjivanje zbroja u treću:

Meni se pak cini da si shvatio ;-)

Iako ti program nece raditi jer su a,b,c nedostupni. Punokrvni imperativni program bi te varijable definirao kao globalne, ili kad se vec sluzis C-om - napravio struct "State" sa a,b,c i onda globalno definirao taj state.

  Shvaćam. Hvala.

1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice