Paradygmaty programowania/Test 6: Programowanie funkcyjne — przegląd

From Studia Informatyczne

Test 6

Czego z zasady nie ma w językach funkcyjnych?

parametrów z domyślnymi wartościami

pętli

wyrażeń warunkowych

wywołań rekurencyjnych

Która cecha jest typowa dla języków funkcyjnych, a rzadko występuje w językach imperatywnych i obiektowych?

kompilacja do kodu pośredniego

możliwość używania funkcji wyższego rzędu

silne typowanie

zaawansowane konstrukcje enkapsulacyjne

Listy służą w Lispie do zapisywania:

tylko danych

tylko kodu

i danych, i kodu

w Lispie nie ma list

Wywołanie ((LAMBDA (x) (* x x)) 2) w języku Scheme:

podstawi 2 pod wskaźnik do zmiennej x

wyświetli 4

zdefiniuje gwiazdkę jako operator o priorytecie 2

zdefiniuje LAMBDA jako funkcję dwuargumentową

Funkcja DISPLAY w języku Scheme:

nie ma żadnych efektów ubocznych

nie może być używana wewnątrz funkcji rekurencyjnej

wyświetla opis stanu interpretera

wyświetla swój argument na ekranie

Wartością wyrażenia (CAR ‘(A B C)) w języku Scheme jest:

A

(B C)

C

to wyrażenie jest niepoprawne

Wartością wyrażenia (CONS ‘(A B) ‘(C D)) w języku Scheme jest:

(A B C D)

(A B (C D))

((A B) C D)

to wyrażenie jest niepoprawne

Jak w języku Scheme należy zapisać wywołanie złożenia funkcji f z samą sobą na argumencie x, czyli (f o f)(x)?

(f (f x))

f(f(x))

((f f) x)

składanie funkcji nie jest w tym języku dozwolone

Które stwierdzenie nie jest prawdziwe w odniesieniu do języka ML?

lista może zawierać elementy różnych typów

można pisać funkcje polimorficzne

ML stosuje niejawne nadawanie typów

wyrażenia arytmetyczne zapisuje się w postaci infiksowej

Do łączenia list w Haskellu służy:

funkcja CONS

operator ++

operator &

nie ma operatora, po prostu zapisuje się dwie listy obok siebie