U okviru programskog jezika za neki gradivni element se kaže da je građanin prvog reda ako:
U okviru jezika ne postoje restrikcije po pitanju  njegovog kreiranja i korišćenja
 U okviru jezika ne postoje restrikcije po pitanju njegovog kreiranja
 U okviru jezika ne postoje restrikcije po pitanju njegovog korišćenja
 U okviru jezika ima restrikcija na njegovo korišćenje
 Šta čini stanje programa?
Sve vrednosti u memoriji kojima program u toku izvršavanja ima pristup.
  Sve promenljive u programu.
 Sve funkcije u programu.
 Sve vrednosti u memoriji kojima program u toku izvršavanja nema pristup. 
Kako se u funkcionalnim jezicima nadoknađuje nepostojanje implicitnog stanja?
 Korišćenjem eksplicitnog stanja koje se može napraviti po potrebi.
 Ne nadoknadjuje se.
 Ovo je trik pitanje, u funkcionalnim jezicima postoji implicitno stanje.
 Različitim naredbama dodele.
Šta podrazumeva referentna prozirnost?
 Ako se na dva mesta referencira na isti izraz, onda je vrednost ta dva izraza ista.
 Da je bitan redosled izvođenja operacija.
Da se delovi izraza NE MOGU sračunati nezavisno, a onda se združiti naknadno.
 Da naredba dodele ima propratni efekat.
Osnovna struktura podataka koja se javlja u svim funkcionalnim jezicima je:
 Lista
 Mapa
 Stablo
Niz
Zaključivanje tipova može biti:
 Statičko i dinamičko
 Deduktivno i induktivno
 Neposredno i posredno
 Striktno i nestriktno
Obeležite odgovoj koji tačno opisuje listu parnih brojeva prve desetice,  pomnoženih sa 2:
 [2* x| x<-[0..10],  mod x 2 ==0]
 [x| x<-[0..10], mod x 2 ==0]
 [x| x<-[0..10],div x 2 ==0]
 [2*x| x<-[0..10], div x 2 ==0]
Obeležiti odgovor koji tačno opisuje listu parova oblika (x,y) u kojima je x+y=5.
[(x,y)| x<-[1..5], y<-[1..5], x+y==5]
 [(x,y)| x<-[1..10], y<-[1..10], x+y==5]
[(x,x)| x<-[1..5]]
 [(x,y)| x+y==5]
Kod striktne semantike:
Prvo se izračunaju vrednosti svih operanada, pa se onda izračunava vrednost izraza.
 Izračunavanje operanada, tj. Argumenata odlaže se sve dok te vrednosti ne budu neophodne.
 Prenos parametara je po potrebi.
 Je važno to što ona omogućava kreiranje beskonačnih struktura i izraza.
Karakteristike programa sa referentnom prozirnošću su?
 Formalna konciznost, prikladni su za formalnu verifikaciju, manje su podložni greškama i lakše ih je optimizovati , transformisati i paralelizovati.
 Portabilnost, jednostavnost, mala veličina i skriptovanje
 Skraćen zapis i tipovi podataka visokog nivoa
 Skalabilnost i portabilnost
Kako biste kompajlirali Haskell program pod nazivom „Zdravo“?
ghc Zdravo.hs
 ghci Zdravo.hs
 ghc Zdravo.haskel
ghci Zdravo.haskell
Koji su rezultati funkcija „length“ , „ sum“ i „head“ za listu [1,5,7,2,3]?
5, 18 i 1
 5,18,3
 5,1,1
 6,18,3
Koji je rezultat sledećeg izraza: map (*2) [1,5,7,9,12,17]?
 [2,10,14,18,24,34] 
 [1,5,7,9,12,17]
 [2,5,7,9,12,17]
[2,7,12]
Koji je rezultat sledećeg izraza: filter (>3) [1,2,-8,17,-4,4,3,51]
[17,4,51]
 [1,2,-8,-4]
 [17,4,51,3]
[1,2,-8,-4,3]
Šta od navedenog ne spada u karakteristike Haskell-a?
 Nije strogo tipiziran jezik
 Lenja evaluacija- izbegavaju se nepotrebna izračunavanja
 Čist je funkcionalni jezik
 Podrška za paralelno i konkurentno programiranje
Koja su tri najznačajnija predstavnika logičke paradigme?
Prolog, ASP, Datalog
Java, Simula, C++
 Prolog, Haskell, Lisp
 C, Payton, C#
Logičko programiranje je pogodno za:
Rešavanje problema matematičke logike
I/O algoritme
Grafiku
 Numeričke algoritme
Logičko programiranje nije pogodno za:
I/O algoritme
Simboličko rešavanje jednačina
Automatizaciju projektovanja
Podršku relacionim bazama podataka
Šta je literal?
Atomička formula ili negacija atomičke formule
 Predikatska formula ili negacija predikatske formule
 Funkcija ili inverz funkcije
 Skup termova 
Šta je klauza?
Disjunkcija literala
 Inkluzija literala
 Ekvivalencija literala
 Negacija literala
Šta je problem unifikacije?
Problem ispitivanja da li postoji supstitucija koja čini dva izraza jednakim.
Problem ispitivanja da li postoji supstitucija koja čini dva izraza različitim.
 Problem ispitivanja da li se dva izraza mogu nadovezati jedan na drugi.
Problem ispitivanja da li je dužina dva izraza jednaka.
Kohezija je pojam koji se odnosi na na to:
koliko blisko su povezane operacije koje se vrše u rutini ili modulu
 koliko blisko su povezani hardver i softver
 kolika je jačina povezanosti dve rutine ili modula
 koliko često se šalju poruke među korisnicima
Na šta se odnosi kopčanje?
Na jačinu povezanosti dve rutine ili modula
 Na način komunikacije između korisnika  
Na otkrivanje grešaka u programu  
 Na pravljenje odgovarajućih izmena u programu 
Kod koji se razvija primenom funkcionalne dekompozicije ima:
slabu koheziju i jako kopčanje
 slabu koheziju i slabo kopčanje
 jaku koheziju i jako kopčanje
 jaku koheziju i slabo kopčanje
OOP je nastala kao jedna od posledica:
Softverske krize
 Finansijske krize
 Hardverske krize
 Aneksiozne krize
Enkapsulacija je:
Skup mehanizama koje obezbeđuje jezik za skrivanje implementacionih detalja
 Skup mehanizama koje obezbeđuje korisnik za skrivane detalja programa
 Skup mehanizama koje obezbeđuje jezik za skrivanje interfejsnih detalja
 Uži pojam od pojma skrivanja podataka
Objektno orijentisani jezici imaju sve osobine objektno zasnovanih jezika, zajedno sa:
nasleđivanjem i polimorfizmom
Drugi: 
Treći:
Četvrti:
Aliasi su?
Više promenljivih sa istom adresom
 Promenljiva sa više adresa
 Imena promeljivih
 Ključne reči u Prologu
Kontrola toka definiše:
 Redosled izračunavanja koje računar sprovodi da bi se ostvario neki cilj
 Dopustive vrednosti za promenljive
Dopustive tipove povratnih vrednosti funkcija
 Redosled po kom se učitavaju tokeni iz datoteke
