игра брюс 2048
Главная / Программирование / Введение в программирование на Лиспе / Тест 8

Введение в программирование на Лиспе - тест 8

Упражнение 1:
Номер 1
Укажите, какие функции являются псевдо-функциями Лисп-системы:

Ответ:

 (1) (cond) 

 (2) (union) 

 (3) (setq) 


Номер 2
Укажите, какие функции являются псевдо-функциями Лисп-системы:

Ответ:

 (1) (let) 

 (2) (intesection) 

 (3) (print) 


Номер 3
Что такое псевдо-функция:

Ответ:

 (1) это функция, которая выполняется ради воздействия на систему 

 (2) это функция, которая выполняется ради получения значений 

 (3) это функция, в качестве аргументов которой могут выступать другие функции 


Упражнение 2:
Номер 1
Какой из  результатов вычисления формы (union '(1 2 3) '(1 2 5)) будет получен (учесть порядок следования элементов итогового списка). Функция Union имеет следующее определение:
			
(DEFUN UNION (X Y)
        (COND
          ((NULL X) Y)
          ((MEMBER (CAR X) Y) (UNION (CDR X) Y) )
          (T (CONS (CAR X) (UNION (CDR X) Y))) )) )  
)) 
            
			

Ответ:

 (1) (1 2 3 5) 

 (2) (3 2 5 1) 

 (3) (1 2 5 3) 

 (4) (3 1 2 5) 


Номер 2
Какой из  результатов вычисления формы (union '(a b c) '(с a b)) будет получен (учесть порядок следования элементов итогового списка). Функция Union имеет следующее определение:
			
(DEFUN UNION (X Y)
        (COND
          ((NULL X) Y)
          ((MEMBER (CAR X) Y) (UNION (CDR X) Y) )
          (T (CONS (CAR X) (UNION (CDR X) Y))) )) )  
)) 
            
			

Ответ:

 (1) (a b с) 

 (2) (с a b) 

 (3) (a b a b)  

 (4) (a с b) 


Номер 3
Какой из  результатов будет получен при вычисления формы (union '(a b c) '(1 a a)), функция union имеет следующее определение:
			
 (DEFUN UNION (X Y)
        (COND
          ((NULL X) Y)
          ((MEMBER (CAR X) Y) (UNION (CDR X) Y) )
          (T (CONS (CAR X) (UNION (CDR X) Y))) )) )  
)) 
            
			

Ответ:

 (1) (1 a b c) 

 (2) (с a a b 1) 

 (3) (b с 1 a a) 

 (4) (a с b 1) 


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

Ответ:

 (1) (Atom x) 

 (2) (Eq x1 x2) 

 (3) (Cond (x (cons 1 (cdr x)) )) 

 (4) T 


Номер 2
Укажите, какая из приведенных ниже форм являются специальными:

Ответ:

 (1) (defun f(x) (car x)) 

 (2) (Atom '(x y)) 

 (3) T 

 (4) nil 


Номер 3
Укажите, какая из приведенных ниже форм является специальной:

Ответ:

 (1) (cond ((Eq x y) (print x)) (T (print y)) ) 

 (2) (Eq (x y)) 

 (3) (eval '(car x)) 

 (4) nil 


Упражнение 4:
Номер 1
Какой из  результатов вычисления формы (intersection '(1 2 3) '(4 5 3)) является верным. Функция intersection имеет следующее определение:
			
(DEFUN INTERSECTION (X Y)
               (COND
     ((NULL X) NIL)  
     ((MEMBER (CAR X) Y) (CONS (CAR X) (INTERSECTION (CDR X) Y)) )
     (T (INTERSECTION (CDR X) Y))  
))  
            
			

Ответ:

 (1) (1 2 3 4 5) 

 (2) (1 2 4 5) 

 (3) (3) 


Номер 2
Какой из  результатов вычисления формы (intersection '(a b c) '(a b d)) является верным. Функция intersection имеет следующее определение:
			
(DEFUN INTERSECTION (X Y)
               (COND
     ((NULL X) NIL)  
     ((MEMBER (CAR X) Y) (CONS (CAR X) (INTERSECTION (CDR X) Y)) )
     (T (INTERSECTION (CDR X) Y))  
))  
            
			

Ответ:

 (1) (d c) 

 (2) (b a) 

 (3) (a b) 


Номер 3
Какой из  результатов вычисления формы (intersection '(a b c) '(с a b)) является верным. Функция intersection имеет следующее определение:
			
(DEFUN INTERSECTION (X Y)
               (COND
     ((NULL X) NIL)  
     ((MEMBER (CAR X) Y) (CONS (CAR X) (INTERSECTION (CDR X) Y)) )
     (T (INTERSECTION (CDR X) Y))  
))  
            
			

Ответ:

 (1) (a b с) 

 (2) (с a b) 

 (3) Nil 


Упражнение 5:
Номер 1
Какое из представленных ниже выражений содержит ошибки:

Ответ:

 (1) (a b c d . e) 

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

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


Номер 2
Какие из представленных ниже выражений содержат ошибки:

Ответ:

 (1) (a . b c d e) 

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

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


Номер 3
Какие из представленных ниже выражений содержат ошибки:

Ответ:

 (1) (a b c d e . nil) 

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

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


Упражнение 6:
Номер 1
Какая из представленных ниже пар форм имеет одинаковые результаты при их вычислении:

Ответ:

 (1) (apply (f x y)) и (funcall f x y) 

 (2) (apply (f x y)) и (funcall (f x y)) 

 (3) (eval '(f 'x 'y)) и (eval '(f x y)) 

 (4) (eval '(f x y)) и (funcall f 'x 'y) 


Номер 2
Какая из представленных ниже пар форм дает одинаковые результаты при их вычислении:

Ответ:

 (1) (eval f (x y)) и (apply (f x y)) 

 (2) (eval (f x y)) и (funcall f x y) 

 (3) (eval '(f x y)) и (funcall f x y) 

 (4) (eval '(f 'x 'y)) и (funcall f x y)  


Номер 3
Какая из представленных ниже пар форм имеет одинаковые результаты при их вычислении:

Ответ:

 (1) (append f (x y)) и (funcall f (x y)) 

 (2) (apply f (x y)) и (funcall f x y) 

 (3) (eval f (x y)) и (funcall f x y) 

 (4) (eval '(f x y)) и (funcall f x y) при учете, того, что (defun f(x y) (cons x y)) был вызван ранее  


Упражнение 7:
Номер 1
Что означает запись (let  ((a (cons x y))) a) :

Ответ:

 (1) замена в последующих выражениях списков "x" и "y" на список "a" 

 (2) присваивание локальной переменной "a" результата консолидации (cons x y)  

 (3) замена в выражениях (аргументах Let) повторяющегося подвыражения "(cons x y)" на "a" без воздействия на результат вычисления последующих форм 


Номер 2
Что означает запись (let  ((a (car x)) (b (car y))) a b):

Ответ:

 (1) замена в последующих выражениях повторяющихся подвыражений "a" и "b" на "(car x)" и "(car y)" 

 (2) замена в выражениях (аргументах Let) повторяющихся подвыражений "(car x)" и "(car y)" на "a" и "b" 

 (3) замена в последующих выражениях повторяющихся голов " x" и "y" на "a" и "b" 


Номер 3
В каких случаях можно использовать инструкцию Let :

Ответ:

 (1) вынос из определения совпадающих подвыражений 

 (2) задание глобальной переменной значения 

 (3) вывод на экран результата выполнения функции, идущей в качестве аргумента Let 


Упражнение 8:
Номер 1
Каким образом низкоуровневая подпрограмма может быть включена в Лисп-систему:

Ответ:

 (1) создание низкоуровневой программы в Лисп-системе пользователем 

 (2) создание низкоуровневой программы возможно вне систем программирования, но никак не внутри системы 

 (3) создание низкоуровневой программы в другой системе и ее перенос в Лисп систему 


Номер 2
Каким образом низкоуровневая программа может быть включена в Лисп-систему:

Ответ:

 (1) создание низкоуровневой программы в Лисп-системе пользователем 

 (2) лисп система не поддерживает работу с языком Ассемблер 

 (3) путем трансляции Лисп-кода в код ассемблера Лисп-программы с дальнейшим использованием 


Номер 3
Каким образом низкоуровневая программа может быть включена в Лисп-систему:

Ответ:

 (1) никаким 

 (2) создание низкоуровневой программы в Лисп-системе пользователем 

 (3) создание низкоуровневой программы возможно вне систем программирования, но никак не внутри системы 


Упражнение 9:
Номер 1
Какой результат будет получен при вычислении формы (cons '(car '(A B) (car '(C D)))) :

Ответ:

 (1) (A . C) 

 (2) ((car '(A B)) . C) 

 (3) сообщение об ошибке 


Номер 2
Какой результат будет получен при вычислении формы (cons '(car '(A B)) '(car '(C D))) :

Ответ:

 (1) (A . C) 

 (2) сообщение об ошибке 

 (3) ((car '(A B)) . (car '(B C))) 


Номер 3
Какой результат будет получен при вычислении формы (funcall (cons 'car '('(C D)))):

Ответ:

 (1) C 

 (2) (car '(C D))  

 (3) сообщение б ошибке 


Упражнение 10:
Номер 1
Какое из представленных ниже выражений содержит ошибки:

Ответ:

 (1) (1 2 3 4 5) 

 (2) (1 . (2 3 . (4 5))) 

 (3) (((1 . 2) . (3 . 4 . 5)) 


Номер 2
Какие из представленных ниже выражений содержат ошибки:

Ответ:

 (1) (1 2 3 . 4 5 ) 

 (2) (1 2 3 4 . (5)) 

 (3) (((1 . nil) . nil) 3 4 5) 


Номер 3
Какие из представленных ниже выражений содержат ошибки:

Ответ:

 (1) ((1) (2) (3 4) . (5)) 

 (2) (1 2 3 . (4 . nil) 5) 

 (3) ((1 . nil) (2. nil) (3 . nil) (4 . nil) (5 . nil) . nil) 




Главная / Программирование / Введение в программирование на Лиспе / Тест 8