U okviru programskog jezika za neki gradivni element se kaze da je gradjanin prvog reda ako:
U okviru jezika ne postoje restrikcije po pitanju  njegovog kreiranja i koriscenja
U okviru jezika ne postoje restrikcije po pitanju njegovog kreiranja
U okviru jezika ne postoje restrikcije po pitanju njegovog koriscenja
U okviru jezika ima restrikcija na njegovo koriscenje
Sta cini stanje programa?
Sve vrednosti u memoriji kojima program u toku izvrsavanja ima pristup
Sve promenljive u programu
Sve funkcije u programu
Sve vrednosti u memoriji kojima program u toku izvrsavanja nema pristup
Kako se u funkcionalnim jezicima nadoknadjuje nepostojanje implicitnog stanja?
Koriscenjem eksplicitnog stanja koje se moze napraviti po potrebi
Ne nadoknadjuje se
Ovo je trik pitanje, u funkcionalnim jezicima postoji implicitno stanje
Razlicitim naredbama dodele
Sta podrazumeva referentna prozirnost?
Ako se na dva mesta referencira na isti izraz, onda je vrednost ta dva izraza ista
Da je bitan redosled izvodjenja operacija
Da se delovi izraza NE MOGU sracunati nezavisno, a onda se zdruziti naknadno
Da naredba dodele ima propratni efekat
Osnovna struktura podataka koja se javlja u svim funkcionalnim jezicima je:
Lista
Mapa
Stablo
Niz
Zakljucivanje tipova moze biti:
Staticko i dinamicko
Deduktivno i induktivno
Neposredno i posredno
Striktno i nestriktno
Obelezite odgovor koji tacno opisuje listu parnih brojeva prve desetice,  pomnozenih 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]
Obeleziti odgovor koji tacno 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 izracunaju vrednosti svih operanada, pa se onda izracunava vrednost izraza
Izracunavanje operanada, tj. Argumenata odlaze se sve dok te vrednosti ne budu neophodne
Prenos parametara je po potrebi
Je vazno to sto ona omogucava kreiranje beskonacnih struktura i izraza
Karakteristike programa sa referentnom prozirnoscu su?
Formalna konciznost, prikladni su za formalnu verifikaciju, manje su podlozni greskama i lakse ih je optimizovati , transformisati i paralelizovati.
Portabilnost, jednostavnost, mala velicina i skriptovanje
Skracen 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 ,1
5,18,3
5,1,1
6,18,3
Koji je rezultat sledeceg 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 sledeceg 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]
Sta od navedenog ne spada u karakteristike Haskell-a?
Nije strogo tipiziran jezik
Lenja evaluacija- izbegavaju se nepotrebna izracunavanja
Cist je funkcionalni jezik
Podrska za paralelno i konkurentno programiranje
Formalizam za funkcionalne jezike je:
Lambda racun
Tjuringova masina
URM masina
Logika i reda
Lambda racun
Ne zamara se arhitekturom masine
Ne naglasava pravila za transformaciju izraza
Zavisi od arhitekture mašine
Podrzava drugacija pravila za razlicite arhitekture
Ispravna sintaksa λ-izraza, od sledecih, je:
λx.x+1
(x,x+1) λ
λ : x, x+1
λ : x → x+1
Pravilni (valjani) λ-izrazi nazivaju se
λ-termovi
λ-tokeni
λ-apstrakcije
λ-simboli
Koji par od sledecih, ne sadrzi alfa-ekvivalentne termove:
λij.i+j*5 i  λmn.n+m*5
λij.i+j*4 i  λmn.m+n*4
λv.5+v/2 i λp.5+p/2
λx.x+6 i  λz.z+6
α-redukcija predstavlja:
Preimenovanje
Supstituciju promenljive i izraza
Funkcijsko prosirenje
Transformacija funkcija koje kao argumente sadrze konstante
Normalni oblik se dobija
Visestrukom beta-redukcijom
Visestrukom alfa-redukcijom
Visestrukom delta-redukcijom
Visestrukom eta-redukcijom
Funkcionalna paradigma zasniva se na:
Pojmu matematicke funkcije
Pojmu rekurzivne funkcije
Principu nasledjivanja
Programu sa blokovima naredbi
Koja su tri najznacajnija predstavnika logicke paradigme?
Prolog, ASP, Datalog
Java, Simula, C++
Prolog, Haskell, Lisp
C, Payton, C#
Logicko programiranje je pogodno za:
Resavanje problema matematicke logike
I/O algoritme
Grafiku
Numericke algoritme
Logicko programiranje nije pogodno za:
I/O algoritme
Simbolicko resavanje jednacina
Automatizaciju projektovanja
Podrsku relacionim bazama podataka
Sta je literal?
Atomicka formula ili negacija atomicke formule
Predikatska formula ili negacija predikatske formule
Funkcija ili inverz funkcije
Skup termova
Sta je klauza?
Disjunkcija literala
Inkluzija literala
Ekvivalencija literala
Negacija literala
Sta je problem unifikacije?
Problem ispitivanja da li postoji supstitucija koja cini dva izraza jednakim
Problem ispitivanja da li postoji supstitucija koja cini dva izraza razlicitim
Problem ispitivanja da li se dva izraza mogu nadovezati jedan na drugi.
Problem ispitivanja da li je duzina dva izraza jednaka.
Prolog se oslanja na:
Logiku I reda i metod rezolucije
Lambda racun
Pojam rekurzije
Samo na metod rezolucije
Hornova klauza je:
Disjunkcija literala sa najvise 1 nenegiranim literalom
Disjunkcija literala sa proizvoljnim brojem nenegiranih literala
Konjukcija literala sa 2 nenegirana literala
Konjukcija literala sa 1 negiranim literalom
Supstitucija je preslikavanje oblika:
promenljiva -> term
promenljiva -> token
term -> klauza
term -> promenljiva
Sta od navedenog NIJE deo programiranja u Prologu?
deklaracija imena biblioteka sa cinjenicama o objektima i odnosima medju njima
obezbedjivanje cinjenica o objektima i odnosima medju njima
defnisanje pravila o objektima i odnosima medju njima
formiranje upita o objektima i odnosima medju njima
Promenljive u prologu se zapisuju
Pocetnim velikim slovom ili simbolom _
Pocetnim malim slovom
Ne postoji konvencija o zapisivanju promenljivih
Alfa-numerickim karakterima bez konvencije o pocetnom slovu
Cinjenice u Prologu su
Hornove klauze bez negiranih literala
Hornove klauze sa 2 nenegirana literala
Disjunkcija literala sa najvise 1 nenegiranim literalom
Hornove klauze bez nenegiranih literala
Pravila u Prologu su
Hornove klauze u punom obliku
Hornove klauze bez negiranih literala
Hornove klauze sa proizvoljnim brojem negiranih literala
Hornove klauze bez nenegiranih literala
Prolog generise odgovore
Uporedjujuci upit sa bazom podataka
Uporedjujuci cinjenicu sa bazom podataka
Uporedjujuci pravilo sa bazom podataka
Uporedjujuci aksiomu sa bazom podataka
Ako je S promenljiva a T proizvoljni element unifikacija u Prologu se vrsi:
Tako sto se termu S dodeli T
T primi vrednost S
Unifikuju se samo ako predstavljaju istu konstantu
Unifikuju se ako imaju istu arnost i jednake dominantne simbole