игра брюс 2048
Главная / Программирование / Основы функционального программирования / Тест 3

Основы функционального программирования - тест 3

Упражнение 1:
Номер 1
На каком наборе данных функция member (поиск заданного элемента из списка) выполнит ровно три шага (обращения к самой себе)?

Ответ:

 (1) a (c d e a f) 

 (2) a (a b c d e f) 

 (3) f (a b c d e) 


Номер 2
На каком наборе данных функция member (поиск заданного элемента из списка) выполнит ровно два витка (обращения к самой себе)?

Ответ:

 (1) a (c d e a f) 

 (2) с (a b c d e f) 

 (3) f (a b c d e) 


Номер 3
На каком наборе данных функция member (поиск заданного элемента из списка) выполнит ровно одно обращение к самой себе?

Ответ:

 (1) a (a c d e a f) 

 (2) d (a b c d e f) 

 (3) f (a ) 


Упражнение 2:
Номер 1
На каком наборе данных функция insert (вставляет в список перед заданным элементом третий аргумент) сделает более двух обращений к самой себе?

Ответ:

 (1) (a b c d) d a 

 (2) (b a c d) a b 

 (3) () a c 


Номер 2
На каком наборе данных функция insert (вставляет в список перед заданным элементом третий аргумент) сделает более двух обращений к самой себе?

Ответ:

 (1) () a c 

 (2) (b a c d) a b 

 (3) (a b d) e c 


Номер 3
На каком наборе данных функция insert (вставляет в список перед заданным элементом третий аргумент) сделает менее трех обращений к самой себе?

Ответ:

 (1) (a b c d) a c 

 (2) (b c d e a) a b 

 (3) (a b c d e) f c 


Упражнение 3:
Номер 1
На каком наборе данных функция append (соединение двух списков в один) даст результат сразу, без рекурсии (обращений к самой себе)?

Ответ:

 (1) (a b) (c d) 

 (2) () (a b c) 

 (3) (a b c d) () 


Номер 2
На каком наборе данных функция append (соединение двух списков в один) даст результат сразу, без рекурсивных обращений к себе?

Ответ:

 (1) (a b) (c d) 

 (2) Nil ((a b) c d) 

 (3) (a (b c) d) () 


Номер 3
В каком случае правильно указано число обращений к CONS, которое произойдет 
при выполнении функции append (соединение двух списков в один) на заданных аргументах?

Ответ:

 (1) 2 (a b) (c d) 

 (2) 5 (z x y) (w v) 

 (3) 1 (a d c)(a) 

 (4) 4 (a b) (a c d e) 


Номер 4
Отметьте правильное число обращений к CONS, которое произойдет при выполнении функции append (соединение двух списков в один) на заданных аргументах.

Ответ:

 (1) 4 (a b) (c d) 

 (2) 3 (z x y) (w v) 

 (3) 1 (a d c)(a) 

 (4) 3 (a b) (a c d e) 


Упражнение 4:
Номер 2
Отметьте вариант, в котором правильно указано число обращений к себе функции equal, сравнивающей две структуры для выяснения, совпадают ли они?

Ответ:

 (1) 1 (a) (a) 

 (2) 2 ((a b) c) ((a b) d) 

 (3) 4 (a b c) (a b c d) 


Номер 3
В каком случае при выяснении, совпадают ли заданные S-выражения, число обращений к себе функции equal (сравнение двух структур) указано верно?

Ответ:

 (1) 1 ( b c d) ( b c a) 

 (2) 2 (a) (a) 

 (3) 2 ((a b) c) ((a b) d) 

 (4) 3 (a b c) (a b c d) 


Упражнение 5:
Номер 1
На каких данных расход памяти (число вызовов cons) при вычислении функции subst (подстановка первого аргумента вместо второго в третий) пропорционален длине последнего из аргументов?

Ответ:

 (1) (x) y (a b x y ) 

 (2) x (x y z) (a b x y z) 

 (3) (x y) z (a b (a z b) ) 

 (4) x (y z) ((a y z) b c d ) 


Номер 2
На каких данных расход памяти (число cons) при вычислении функции subst (подстановка первого аргумента вместо второго в третий) равен длине последнего из аргументов?

Ответ:

 (1) (x) y (a b (y d) x c) 

 (2) x (y z) (a b x y z) 

 (3) (x y) z (a b a z b z) 

 (4) x (y z) ((a y z) b c d ) 


Номер 3
На каких данных расход памяти (число cons) при вычислении функции subst (подстановка первого аргумента вместо второго в третий) превосходит длину последнего из аргументов?

Ответ:

 (1) (x) y (a b x y c) 

 (2) x (y z) (a b x y z) 

 (3) (x y) z (a b (a z b) z) 

 (4) x (x y z) ((x y z) b x y z) 


Упражнение 6:
Номер 1
Какое из заданных выражений вычислимо? (pairlis – наращивает список пар, соединяя в пары элементы первых двух аргументов)

Ответ:

 (1) (pairlis (a b c) ( t d f) ((e . x)(g . y))) 

 (2) (pairlis '(a b c) '(t d f) '((r . y)(s. y))) 

 (3) (pairlis (cons a b) '(t d f) '((k . y)(l . y))) 


Номер 2
Какое из заданных выражений имеет определенный результат?
(pairlis – наращивает список пар, соединяя в пары элементы первых двух аргументов)

Ответ:

 (1) (pairlis (cons a b) ( t d f) ((ten . x)(two . y))) 

 (2) (pairlis (cons a b) '(t d f) '((k . y)(p . y))) 

 (3) (pairlis () () '((k . y) (p . y)) ) 


Номер 3
Какая из заданных форм пригодна для успешной интерпретации?

Ответ:

 (1) (pairlis '(one two) '( t d f) '((7 . x)(8 . y))) 

 (2) (pairlis (one two ten) '(t d f) '((k . y)(m . z))) 

 (3) (pairlis '(one two ten) (LIST t d f) '((k . y)(m . z))) 


Упражнение 7:
Номер 1
Какие из перечисленных текстов представляют перечень ветвей условного выражения?

Ответ:

 (1) (((null x) al) ((QUOTE T) (CONS (CONS (CAR x) (CAR Y) ) (pairlis (CDR x) (CDR y) al) ))) 

 (2) ((eq x (CAAR x)) (CAR al)) ((QUOTE T) (assoc x (CDR al))) 

 (3) (((null m)(cons(eval(car m)a)(evlis(cdr m)a))) 


Номер 2
Какие из данных текстов изображают перечень ветвей условного выражения?

Ответ:

 (1) ((eq x (CAAR x)) (CAR al)) ((QUOTE T) (assoc x (CDR al))) 

 (2) (((eval(caar c)a)(eval(cadar c)a))(T(evcon(cdr c)a))) 

 (3) (((null m)(cons(eval(car m)a)(evlis(cdr m)a))) 


Номер 3
Какие из списков представляют перечень ветвей условного выражения (можно вставить cond вслед за первой скобкой)?

Ответ:

 (1) (prog ()((null x) al) (T (CONS (CONS (CAR x) (CAR Y) ) (pairlis (CDR x) (CDR y) al) )) 

 (2) (((eq x (CAAR al)) (CAR x)) al) ((QUOTE T) (assoc x (CDR al))) 

 (3) ((eq(caar c)(cadar c)) (evcon(cdr c)a)) 


Упражнение 8:
Номер 1
На каких данных функция member (поиск элемента в списке) выполнит ровно три обращения к себе?

Ответ:

 (1) a (c d e a f) 

 (2) d (a b c d e f) 

 (3) f (a b c d e) 


Номер 2
На каком данном функция insert (в список перед вторым аргументом вставляет третий) сделает более двух витков?

Ответ:

 (1) (a b c d) d a 

 (2) (b a c d) b a 

 (3) (a b d) c a 


Номер 3
На каком данном функция append (сцепление двух списков) даст результат сразу, без рекурсии?

Ответ:

 (1) (a b) (c d) 

 (2) () (a b c) 

 (3) Nil ((a b) c d) 

 (4) (a b c d) () 


Упражнение 9:
Номер 1
В каких случаях правильно указано число обращений к CONS, которое произойдет при выполнении функции append (сцепление списков) на указанных аргументах?

Ответ:

 (1) append 2 (a b) (c d) 

 (2) append 3 (z x y) (w v) 

 (3) append 1 (a d c)(a) 

 (4) append 4 (a b) (a c d e) 


Номер 2
В каких случаях число обращений к функции equal при выяснении, не совпадают ли заданные S-выражения, приведено верно?

Ответ:

 (1) 1 (a b c) ( b c a) 

 (2) 1 (a) (a) 

 (3) 2 ((a b) c) ((a b) d) 

 (4) 4 (a b c) (a b c d) 


Номер 3
На каких данных расход памяти при вычислении функции subst (подстановка первого аргумента вместо второго в заданную структуру) пропорционален объему последнего из аргументов?

Ответ:

 (1) (x) y (a b x y c) 

 (2) x (y z) (a b x y z) 

 (3) (x y) z (a b (a z b) z) 

 (4) x (y z) ((a y z) b c d ) 




Главная / Программирование / Основы функционального программирования / Тест 3