Функционална парадигма - квиз¶
- могу се креирати само унутар класа
- могу се правити показивачи на функције
- функције се могу доделити променљивима, проследити као аргументи и вратити као резултати функција
- функције не могу користити глобалне променљиве
Q-14: Шта значи да су у функционалним програмским језицима функције „грађани првог реда”:
- бочни ефекти подразумевају да се током израчунавања израза или функције промени стање програма (нпр. вредност глобалне променљиве)
- бочни ефекти подразумевају да се тело петље мора увући бар три карактера
- бочни ефекти подразумевају да се вредност израза израчунава само када је то неопходно
- бочни ефекти подразумевају да функције треба да буду дефинисане помоћу ламбда израза
Q-15: Шта су „бочни” тј. „пропратни” ефекти?
- функције увек враћају исти резултат за исте аргументе (њихово израчунавање не зависи од стања програма)
- програмери не треба да буду лењи
- алгоритам треба да буде што краћи да би се лакше имплементирао
- вредност израза се израчунава само када је то неопходно
Q-16: Шта се подразумева под лењим израчунавањем?
- су увек функције једне променљиве
- имају исти број аргумената и повратних резултата
- никад немају име (увек су анонимне)
- не могу да приступе стању програма
Q-17: Каријеве функције:
- рекурзија није подржана у функционалном програмирању
- рекурзија се може користити искључиво за обраду низова
- рекурзија се у функционалном програмирању често користи уместо петљи
- рекурзивне функције не смеју да приступе стању програма (глобалним променљивим)
Q-18: Која од следећих тврдњи је тачна за рекурзију у функционалној парадигми:
- C#
- Haskell
- Lisp
- C
Q-19: Који од наредних језика не користи никакве елементе функционалне парадигме?
- map
- filter
- sum
- не постоји таква функција
Q-20: У језику C# метода Where библиотеке Linq издваја све елементе серије који задовољавају неко задато својство. Која функција у језику Haskll ради то исто?