Uvod Flashcards

1
Q

Koje su karakteristike funkcionalnog programiranja

A

Funkcije viseg reda, Imutabilnost, Cista funkcija, lenjost, stroga tipiziranost

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Sta je repna rekurzija

A

rekurzija gde se rekurzivni poziv izvrsava na kraju

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Sta su foldable funkcije

A

Sve funkcije koje su tipa liste,
Neke osnovne funkcije
1. ($): Odredjuje grupisanje nase funkcije. U haskellu je uzimanje operatora levo asocijativno i ovako izgleda koriscenje: f g x = > (f g ) x, f $ g x <=> f ( g x)

  1. (.) : Kompozicija funkcija: f ( g x) <=> f.g x
  2. (:) : Desno asocijativna operacija koja dodeljuje element na pocetak liste
  3. (++): Operator konstrukcije liste niski

pr. (:) [] [1,2,3] ==> [ 1,2,3] []

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Korisnicke liste

A

Kako bismo definisali novi tip moramo napraviti objekat:

data iList = Empty | Cons Int iList deriving Show

Univerzalna lista:

data uList a = Empty | Cons a (uList a) deriving Show

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Da li je lista imutabilna

A

Jeste, Kada imamo neku listu xs, i zelimo da napravimo listu ys na sledeci nacin ys = y : xs. Operator ce samo da uzme referencu na nisku xs i da joj prilepi y ne vrsi se kopiranje zbog toga je vreme dodavanja O(1) kao i vreme brisanja glave.

(NAPOMENA) Kada bismo uradili operaciju konkatacije xs ++ [y], vremenska i memorijska slozenost bi bile O(n), bas zbog imutabilnosti

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Sta je persistant vector?

A

To je zapravo B stablo : Slozenost: ako su cvorovi dimenzije 2 onda je slozenost O(log2(n)). Ako fiksiramo duzinu stabla na 7-10 onda je slozenost zapravo konstanta O(1)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Sta je referencionalna transparetnost?

A

Cistoca u realnom svetu ne postoji, na cistocu ne gledamo ovo : CPU registre,raw RAM, zagrevanje racunara.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Gde ne mogu da se nadju ciste funkcije?

A

Ciste funkcije jedino ne mogu da se nadju prilikom paralelizacije sa deljenjem podataka gde se podaci menjaju.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly