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

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

Упражнение 1:
Номер 1
Функционалом называют функцию:

Ответ:

 (1) аргументами которой могут выступать символьные выражения 

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

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


Номер 2
В чем заключается различие между аргументами (и значениями) функционалов и функций:

Ответ:

 (1) в качестве аргументов и результатов у функций могут выступать функционалы. 

 (2) в качестве аргументов и результатов у функционалов могут выступать функции 

 (3) в качестве аргументов и результатов у функций могут выступать только определенные типы объектов, а у функционалов любые 


Номер 3
Что такое функционал:

Ответ:

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

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

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


Упражнение 2:
Номер 1
Какие факторы должны быть учтены при определении отображающей функции:

Ответ:

 (1) способ получения результата из отображаемого множества 

 (2) как распределить память под новое множество и определение функции 

 (3) каким языком воспользоваться для написания этой функции 


Номер 2
Какие факторы должны быть учтены при определении отображающей функции:

Ответ:

 (1) определение структуры данных в отображаемом множестве 

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

 (3) как отличить нужные конечные результаты отображающей функции от промежуточных. 


Номер 3
Какие факторы должны быть учтены при определении отображающей функции:

Ответ:

 (1) структура данных в отображаемом множестве 

 (2) метод, с помощью которого вычисляется итоговое значение результата 

 (3) каким языком воспользоваться для написания этой функции 


Упражнение 3:
Номер 1
Какое из приведенных ниже выражений является примером правильного использования функционала map-el:
			
(defun map-el (fn xl)                        
     (cond                                      
        (xl (cons (funcall fn (car xl) )   
             (map-el fn (cdr xl))        
)    )  )   )                                      
            

Ответ:

 (1) (map-el caddr '(1 2 3 4)) 

 (2) (map-el '(1 2 3 4)) 

 (3) (map-el '+ '(1 2 3 4)) 

 (4) (map-el '(1 2 3 4) #'caddr) 

 (5) (map-el #'car '((1)(2)(3)(4))) 


Номер 2
Какое из приведенных ниже выражений является примером правильного использования функционала map-el:
			 
(defun map-el (fn xl)                        
     (cond                                      
        (xl (cons (funcall fn (car xl) )   
             (map-el fn (cdr xl))        
)    )  )   )                                      
            

Ответ:

 (1) (map-el caddr '(1 2 3 4)) 

 (2) (map-el #'+ '(1 2 3 4)) 

 (3) (map-el '+ '(1 2 3 4)) 

 (4) (map-el #'caddr '(1 2 3 4)) 


Номер 3
Какой из результатов вызова функционала map-el, аргументами которого выступают следующие функции и списки, является правильным:
			
(defun map-el (fn xl)                        
     (cond                                      
        (xl (cons (funcall fn (car xl) )   
             (map-el fn (cdr xl))        
)    )  )   )                                      
            

Ответ:

 (1) (map-el #'car '(1 (2) 3)), результат - (1)  

 (2) (map-el #'car '(1 (2) 3)), результат - (1 2)  

 (3) (map-el #'cdr '(1 (2) 3)), результат - (2)  

 (4) (map-el #'car '((1) (2 3))), результат - (1 2) 

 (5) (map-el #'length '(1 (2) 3)), результат - (1 2)  


Упражнение 4:
Номер 1
Укажите формы, с помощью которых можно удвоить каждый элемент списка: 

Ответ:

 (1) (defun F(xl) (cond (xl (cons (* 2 (car xl) ) (F (cdr xl)))))) 

 (2) (defun F(xl) (map-el (lambda (x) (* 2 x) ) xl))  

 (3) (defun F(xl) (map-comp (lambda (x) (* 2 x)) xl)) 


Номер 2
Укажите формы, с помощью которых можно обнулить каждый элемент списка: 

Ответ:

 (1) (defun F(xl) (cond (T (cons (- (car xl) (car xl) ) (F (cdr xl)))))) 

 (2) (defun F(xl) (cond ((Null xl) Nil) (T (cons (- (car xl) (car xl)) (F (cdr xl)))))) 

 (3) (defun F(xl) (map-el (lambda (x) 0 ) xl)  


Номер 3
Укажите формы, с помощью которых можно посчитать квадрат каждого элемента списка: 

Ответ:

 (1) (defun F(xl) (cond (xl (cons (* (car xl) (car xl) ) (F (cdr xl)))))) 

 (2) (defun F(xl) (cond ( (T (cons (* (car xl) (car xl)) (F (cdr xl)))))) 

 (3) (defun F(xl) (map-el (lambda (x) (* x x)) xl)) 


Упражнение 5:
Номер 1
Каким образом в базовом Лиспе представляется строковая константа:

Ответ:

 (1) _слово1_слово2_…_словоN 

 (2) " слово1 слово2 слово3" 

 (3) ;слово1 слово2 слово3 


Номер 2
Каким образом в базовом Лиспе выглядит строковая константа:

Ответ:

 (1) "abc_def_ghi" 

 (2) 'abc_def_ghi 

 (3) " abc_def_ghi " 


Номер 3
Каким образом в базовом Лиспе изображается строковая константа:

Ответ:

 (1) "строка 

 (2) 'строка 

 (3) "строка" 


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

Ответ:

 (1) ("(abcd)") 

 (2) abcd1234567890 

 (3) '"abcd" 

 (4) "(abcd)" 

 (5) 12345678910111213141516117abcd 


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

Ответ:

 (1) ("слово1 слово2 словоN") 

 (2) слово1 слово2 словоN 

 (3) ;"слово1 слово2 словоN" 

 (4) (слово1 слово2 словоN) 

 (5) "(слово1 слово2 словоN)" 


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

Ответ:

 (1) ("(abcd)") 

 (2) "abcd" 

 (3) (abcd) 

 (4) 12345678910111213141516117 


Упражнение 7:
Номер 1
Какой из результатов вызова функционала map-comp, аргументами которого выступают следующие функции и списки, является правильным:
			
 (defun map-comp (fn al vl)            
     (cond
        (al (cons (fn (car al) (car vl))         
                  (map-comp (cdr al) (cdr vl))
)    )  )   )
           
		   

Ответ:

 (1) (map-comp #'car '(1 2 3) '(1 2 4)), результат ( 1 2 3) 

 (2) (map-comp #'cons '(1 2 3) '(1 (2 4))), результат ((1 . 1) (2 . 2) (3 . 4)) 

 (3) (map-comp #'cons '(1 2 3) '(1 (2 4) )), результат ((1 . 1) (2 2 4) (3)) 

 (4) (map-comp #'cons '(1) '(5 2)), результат (1 . (5 2)) 


Номер 2
Какой из результатов вызова функционала map-comp, аргументами которого выступают следующие функции и списки, является правильным:
		    
 (defun map-comp (fn al vl)            
     (cond
        (al (cons (fn (car al) (car vl))         
                  (map-comp (cdr al) (cdr vl))
)    )  )   )
            
			

Ответ:

 (1) (map-comp #'* '(1 2 3) '((1 2) 4)), результат ((1 2) 8) 

 (2) (map-comp #'/ '(1 2) '(2 2)), результат (1/2 1) 

 (3) (map-comp #'+ '(1 2 3) '(1 2)), результат (2 4)  

 (4) (map-comp #'/ '(1 2) '(2 2)), результат (0.5 .1.0) 


Номер 3
Какой из результатов вызова функционала map-comp, аргументами которого выступают следующие функции и списки, является правильным:

 (defun map-comp (funcall fn al vl)            
     (cond
        (al (cons (fn (car al) (car vl))         
                  (map-comp (cdr al) (cdr vl))
)    )  )   )


Ответ:

 (1) (map-comp #'car '(1 2 3) '((1 2) 4)), результат ( 1 (1 2)) 

 (2) (map-comp #'cdr '(A B C) '(A B (C))), результат (B (C))  

 (3) (map-comp #'* '(1 2 (3)) '(2 3 5)), результат (2 6 8) 

 (4) (map-comp #'/ '(10.0 7.0) '(5 2)), результат (2 3.5) 


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

Ответ:

 (1) (lambda (y z) (map-el #'length (cons y z))) 

 (2) (map-comp #'(lambda (y)(cons y y)) '(x) '(y)) 

 (3) (defun F(x y z) (map-comp #'* x (cons y z))) 


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

Ответ:

 (1) (map-comp #'(lambda (x y) (* x y)) '(1 2) '(3 4)) 

 (2) (defun F(x y) (map-el #'* (cons x (cons y y)))) 

 (3) (map-el #'(lambda (y)(cons x y)) x)) 


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

Ответ:

 (1) (lambda (x y z) (map-el #'length (cons x (cons y z)))) 

 (2) (defun F(x y z) (map-el #'* (cons x (cons y z)))) 

 (3) (map-el #'(lambda (y)(cons y y)) '(x)) 


Упражнение 9:
Номер 1
Какая из приведенных ниже форм содержит ошибку:

Ответ:

 (1) (map-el '#(car '(1 2 3)) '(1 2 3) '(4 5 6)) 

 (2) (defun f3 (xl) (map-el (lambda (x) (* x x )) 'xl)) 

 (3) (defun f(x y) (map-el #'(lambda (x1) (/ x1 y)) x))  


Номер 2
Отметьте, какая из приведенных ниже форм содержит ошибку:

Ответ:

 (1) (map-comp #'car '((1)( 2)(3)) '((4) (5) (6))) 

 (2) (defun f(x y) (map-comp #'(lambda (x1 y1) (* (car x1) (car y1))) x y)) 

 (3) (defun f(x y) (map-el #'(lambda (x1) (cons x1 y)) x)) 


Номер 3
Укажите форму, содержащую ошибку:

Ответ:

 (1) (map-comp '#(car '(1 2 3)) '(1 2 3) '(4 5 6)) 

 (2) (defun f3 (xl) (map-el (lambda (x)(+ 10 (* x x x))) xl)) 

 (3) (defun f(x y) (map-el (lambda (x1 y1) (/ (car x1) (car y1))))) 

 (4) (defun f(x y) (map-el (lambda (x y) (+ (car x) (car y)) x y))) 


Упражнение 10:
Номер 1
Какой из результатов вызова функционала map-ap, аргументами которого выступают следующие функции и списки, является правильным:
			
(defun map-ap (fn ll)
     (cond
        (ll (append (fn (car ll) )
                  (map-ap fn (cdr ll) )
)    )  )   )
            
			

Ответ:

 (1) (map-ap #'cdr '((A B C) (A B (C))) ), результат (B C B C)  

 (2) (map-ap #'* '(1 2 3)), результат (1 4 9) 

 (3) (map-ap #'+1 '(10.0 7.0)), результат (11.0 8.0) 


Номер 2
Какой из результатов вызова функционала map-ap, аргументами которого выступают следующие функции и списки, является правильным:
			
(defun map-ap (fn ll)
     (cond
        (ll (append (fn (car ll) )
                  (map-ap fn (cdr ll) )
)    )  )   )
            
			

Ответ:

 (1) (map-ap #'cdr '((A B C)) ), результат (B C)  

 (2) (map-ap #'cdr '(1 2 3)), результат ((2 3) (3) nil) 

 (3) (map-ap #'car '(10.0 7.0)), результат (nil nil) 


Номер 3
Какой из результатов вызова функционала map-ap, аргументами которого выступают следующие функции и списки, является правильным:
			
(defun map-ap (fn ll)
     (cond
        (ll (append (fn (car ll) )
                  (map-ap fn (cdr ll) )
)    )  )   )
            

Ответ:

 (1) (map-ap #'cdr '((A B C) (A B (C))) ), результат (B C B (C)) 

 (2) (map-ap #'* '(1 2 3)), результат (1 4 9) 

 (3) (map-ap #'+ '(10.0 7.0)), результат (11.0 8.0) 




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