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

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

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

Ответ:

 (1) списочная и точечная нотации 

 (2) в виде дерева, списочная и точечная нотации 

 (3) только списочная и строковая 


Номер 2
Что такое форма:

Ответ:

 (1) это любое выражение  

 (2) это выражение, которое может быть вычислено 

 (3) это список только в точечной нотации 


Номер 3
Для чего используется ассоциативный список в базовом Лиспе:

Ответ:

 (1) для хранения списка свойств атома 

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

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


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

Ответ:

 (1) (a1 a2 a3), где a1 – функция, a2 и a3 аргументы 

 (2) 'abcd 

 (3) abcd, где abcd –переменная 

 (4) (v abcd), где v и abcd – переменные 


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

Ответ:

 (1) (a 230 '3000), где a – функция, 1 и 2 аргументы 

 (2) a, где a–имя функции 

 (3) a, где a–переменная  

 (4) (cond ((Atom 'a) 1) (T 0)) 


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

Ответ:

 (1) (1 2 3) 

 (2) (a b c), где a – функция, b и c переменные 

 (3) a, где a – имя функции 

 (4) a, где a –переменная  

 (5) (quote a) 


Упражнение 3:
Номер 1
В каких случаях правильно указано число обращений к функции Cons при вызове функции subst, имеющей определение
			
(DEFUN subst (x y z) (COND 
      ((equal y z) x)
      ((ATOM z) z)
      ((QUOTE T)(CONS 
       (subst x y (CAR z)) 
       (subst x y (CDR z))
         )  )))
    
			

, со следующими аргументами (порядок следования x y z):


Ответ:

 (1) обращений – 4, аргументы x- (1 2), y - (3 4), z - (1 2 3 4)  

 (2) обращений – 0, аргументы x- A, y - B, z – C 

 (3) обращений – 3, аргументы x- A, y - A, z - (A B C) 

 (4) обращений – 2, аргументы x- (1 2), y - A, z - (B A C D) 


Номер 2
В каких случаях правильно указано число обращений к функции Cons при вызове функции subst, имеющей определение
			
(DEFUN subst (x y z) (COND 
      ((equal y z) x)
      ((ATOM z) z)
      ((QUOTE T)(CONS 
       (subst x y (CAR z)) 
       (subst x y (CDR z))
         )
       )
     )
), 
  
			

со следующими аргументами (порядок следования x y z):


Ответ:

 (1) обращений – 3, аргументы x- (A B), y - (С), z - (A B D) 

 (2) обращений – 3, аргументы x- A, y - C, z - ((C) D) 

 (3) обращений – 0, аргументы x- Nil, y - A, z - (A B C) 

 (4) обращений – 4, аргументы x- T, y - T, z - (B A C) 


Номер 3
В каких случаях правильно указано число обращений к функции Cons при вызове функции subst, имеющей определение
			 
(DEFUN subst (x y z) (COND 
      ((equal y z) x)
      ((ATOM z) z)
      ((QUOTE T)(CONS 
       (subst x y (CAR z)) 
       (subst x y (CDR z))
         )
       )
     )
), 
  
			

со следующими аргументами (порядок следования x y z):


Ответ:

 (1) обращений – 3, аргументы x- (A B), y - (С D), z - (A B C D) 

 (2) обращений – 1, аргументы x- A, y - B, z - C 

 (3) обращений – 1, аргументы x- (1 2), y - A, z - (A B C) 

 (4) обращений – 4, аргументы x- (1 2), y - A, z - (B A C D) 


Упражнение 4:
Номер 1
В каких случаях правильно указано число вызовов функции Cons (в определении append) при вызове функции append, имеющей определение 
			
(DEFUN append (x y) (COND 
     ((null x) y)
     ((QUOTE T) (CONS
       (CAR x) 
       (append (CDR x) y)    
      )
     )
)
      ) , 
     
			

при интерпретации выражений с указанными ниже аргументами:


Ответ:

 (1) вызовов – 2, x – (car (A)), y – (car (1 2)) 

 (2) вызовов – 3, x – (cons 1 2), y – (1 2 2 3) 

 (3) вызовов – 4, x – (car (quote (1 2))), y – (1 2 3) 


Номер 2
В каких случаях правильно указано число вызовов функции Cons (в определении append) при вызове функции append, имеющей определение 
			
(DEFUN append (x y) (COND 
     ((null x) y)
     ((QUOTE T) (CONS
       (CAR x) 
       (append (CDR x) y)    
      )
     )
)
      ) ,
   

при интерпретации выражений с указанными ниже аргументами:


Ответ:

 (1) вызовов – 2, x – (A B C), y – (1 2)  

 (2) вызовов – 2, x – (1 ((2))), y – (a b c) 

 (3) вызовов – 4, x – (a (b) c), y – (a b c d) 


Номер 3
В каких случаях правильно указано число вызовов функции Cons (в определении append) при вызове функции append, имеющей определение 
			
(DEFUN append (x y) (COND 
     ((null x) y)
     ((QUOTE T) (CONS
       (CAR x) 
       (append (CDR x) y)    
      )
     )
)
      ) , 

при интерпретации выражений с указанными ниже аргументами:


Ответ:

 (1) вызовов – 3, x – (cons A B), y – (car (1 2)) 

 (2) вызовов – 4, x – (cons 1 2), y – (2) 

 (3) вызовов – 2, x – (cons (1 2)), y – (a b c d) 


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

Ответ:

 (1) (1 2 3) 

 (2) (1 . (2 . 3)) 

 (3) (1 (2 3)) 

 (4) 1 

 (5) () 


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

Ответ:

 (1) (a . Nil) 

 (2) (Nil . Nil) 

 (3) (ab . (b1 . c2)) 

 (4) 3 . Nil 


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

Ответ:

 (1) (a b c) 

 (2) (a . (b с)) 

 (3) (a . (b . c)) 

 (4) atom 

 (5) a . Nil 

 (6) () 


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

Ответ:

 (1) ((lambda (x y) (car (cons x (cdr y)))) (a b 2) (2 3)) 

 (2) (defun f(x y z) (cons (cons x (cdr y)) z)) 

 (3) (defun F(x) ((lambda (y) (car y)) x) ) 


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

Ответ:

 (1) (defun f(x y) (car (cons x (cdr y)))) 

 (2) ((lambda (x,y) (car (cons x (cdr y)))) '(d c) '(d e)) 

 (3) (defun F(x,y) ((lambda (y) (car y)) x) ) 


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

Ответ:

 (1) (defun (x,y) (car (cons x (cdr y))))  

 (2) ((lambda (x y) (car (cons x (cdr y)))) '(1 2) '(2 3)) 

 (3) (defun F(x) ((lambda (y) (car y)) x) ) 


Упражнение 7:
Номер 1
В каком случае правильно указано количество обращений к последней ветви ((QUOTE T) (QUOTE NIL))  второго (вложенного)  Cond функции Equal, имеющей определение
			
(DEFUN equal (x y) (COND 
       		 ((ATOM x) (COND 
   		     ((ATOM y) (EQ x y))
     		   ((QUOTE T) (QUOTE NIL))
   		 )
            )
           ((equal (CAR x)(CAR y)) (equal (CDR x)(CDR y)))
       ((QUOTE T) (QUOTE NIL))
       )
  ) 
  
			

при интерпретации выражений с указанными ниже аргументами:


Ответ:

 (1) обращений – 1, аргументы (1 2) и (1 0) 

 (2) обращений –1, аргументы (a b) и (a (d)) 

 (3) обращений -3, аргументы (a b) и (c b) 

 (4) обращений – 1, аргументы (a b) и (a c) 


Номер 2
В каком случае правильно указано количество обращений к последней ветви ((QUOTE T) (QUOTE NIL)) второго (вложенного)  Cond функции Equal, имеющей определение 
			 
(DEFUN equal (x y) (COND 
       		 ((ATOM x) (COND 
   		   ((ATOM y) (EQ x y))
     		   ((QUOTE T) (QUOTE NIL))
   		 )
            )
           ((equal (CAR x)(CAR y)) (equal (CDR x)(CDR y)))
       ((QUOTE T) (QUOTE NIL))
       )
  ) 
				

при интерпретации выражений с указанными ниже аргументами:


Ответ:

 (1) обращений – 1, аргументы (a1 b1) и (a1 b1) 

 (2) обращений –2, аргументы (a (b)) и (с d) 

 (3) обращений - 2, аргументы (a b) и ((c) (b)) 

 (4) обращений – 0, аргументы (a1 b1) и (a1 c1) 


Номер 3
В каком случае правильно указано количество обращений к последней ветви второго (вложенного)  Cond функции Equal, имеющей определение
			 
(DEFUN equal (x y) (COND 
    		 ((ATOM x) (COND 
    		   ((ATOM y) (EQ x y))
      		   ((QUOTE T) (QUOTE NIL))
    		 )
         )
        ((equal (CAR x)(CAR y)) (equal (CDR x)(CDR y)))
  ((QUOTE T) (QUOTE NIL))
  )
   ) 
   
		 

при интерпретации выражений с указанными ниже аргументами:


Ответ:

 (1) обращений – 0, аргументы (a b) и (c d) 

 (2) обращений –0, аргументы (a (b)) и (с d) 

 (3) обращений -3, аргументы (a b) и (c b) 

 (4) обращений – 1, аргументы (a b) и (a c) 


Упражнение 8:
Номер 1
В каких случаях правильно указан результат выполнения функции member, имеющей определение

(DEFUN member (x y) (COND 
     ((null y) (QUOTE Nil))
     ((equal x (CAR y)) (QUOTE T))
     ((QUOTE T) (member x (CDR y)) ) )
    )
 

при интерпретации выражений с указанными ниже аргументами:


Ответ:

 (1) x- (A B C), y - (A B C D), результат Nil 

 (2) x – (A B C), y – (A B (C D)), результат Nil 

 (3) x – (A (B)), y – (C (B) A), результат T 

 (4) x – (A (B C)) y – (C A (B C) (A)), результат T 


Номер 2
В каком случае правильно указан результат выполнения функции member, имеющей определение
			 
(DEFUN member (x y) (COND 
     ((null y) (QUOTE Nil))
     ((equal x (CAR y)) (QUOTE T))
     ((QUOTE T) (member x (CDR y)) )
    ))
  
			

при интерпретации выражений с указанными ниже аргументами:


Ответ:

 (1) x- ((A) B C), y - (A B C D), результат T 

 (2) x – (B C D), y – (A (B C D)), результат T 

 (3) x – ((A B)), y – (C A), результат T 

 (4) y – (A (B) C) y – (C (B) C A), результат T 


Номер 3
В каких случаях правильно указан результат выполнения функции member, имеющей определение
			
(DEFUN member (x y) (COND 
     ((null y) (QUOTE Nil))
     ((equal x (CAR y)) (QUOTE T))
     ((QUOTE T) (member x (CDR y))
    ))
     
			

при интерпретации выражений с указанными ниже аргументами:


Ответ:

 (1) x- (A B C), y - (A B C D), результат T 

 (2) x – (A B C), y – (A B (C D)), результат T 

 (3) x – (A (B)), y – (C (B) A), результат Nil 

 (4) y – (A (B) C) y – (C A (B) C A), результат T 


Упражнение 9:
Номер 1
В каких случаях правильно указан результат применения функции Assign, имеющей определение 
			 
(DEFUN assign (x v al) (COND 
    ((Null al) (CONS (CONS x v) Nil ))
       ((equal x (CAAR al))(CONS (CONS x v) (CDR al)))
       ((QUOTE T) (CONS (CAR al) (assign x v (CDR al))))
      ))
			
			

к следующим аргументам:


Ответ:

 (1) аргументы: x – a v – 2 al – '((a . 1) (b . 2)) Результат: ((a . 2)(b .2)) 

 (2) аргументы: x – a v – 2 al – '((a . 1) (b . 2)) Результат: ((a . 2)(a . 1)(b . 2)) 

 (3) аргументы: x – a v – 3 al – '((b . 1) (a . 2)) Результат: ((b . 3)(a . 2)(a . 3)) 

 (4) аргументы: x – a v – 3 al – '((a . 2)(a . 4)(b . 2)) Результат: ((a . 2)(a . 3)(a . 4)(b . 2)) 

 (5) аргументы: x – a v – 5 al – '((a . 1)(a . 3)) Результат: ((a . 5)(a . 3)) 


Номер 2
В каких случаях правильно указан результат применения функции Assign, имеющей описание
			
(DEFUN assign (x v al) (COND 
    ((Null al) (CONS (CONS x v) Nil ))
       ((equal x (CAAR al))(CONS (CONS x v) (CDR al)))
       ((QUOTE T) (CONS (CAR al) (assign x v (CDR al))))
      ))

к следующим аргументам:


Ответ:

 (1) аргументы: x – 'a v – 5 al - ( (b . 3)) Результат: ((b . 3)(a .5)) 

 (2) аргументы: x – 'a v – 5 al - ((a . 0)) Результат: ((a . 5)(a . 0)) 

 (3) аргументы: x – 'a v – 2 al - ((b .3) (c . 2)) Результат: ((b . 3)(c . 2)) 

 (4) аргументы: x – 'a v – 3 al – ((a . 2)(a . 4)(a . 1)) Результат: ((a . 1)(a . 2)(a . 3)(a . 4)) 

 (5) аргументы: x – 'a v – 2 al – ((a . 1)(a . 4)(b . 2)) Результат: ((a . 1)(a . 4) (a . 2)) 


Номер 3
В каких случаях правильно указан результат применения функции Assign, имеющей описание 
			
(DEFUN assign (x v al) (COND 
   ((Null al) (CONS (CONS x v) Nil ))
    ((equal x (CAAR al))(CONS (CONS x v) (CDR al)))
    ((QUOTE T) (CONS (CAR al) (assign x v (CDR al))))
     ))
			
			

к следующим аргументам:


Ответ:

 (1) аргументы: x – 'a v – 2 al - ((a .4) (b . 3)) Результат: ((b . 3)(a .2)) 

 (2) аргументы: x – 'a v – 2 al - ((a .4) (b . 3)) Результат: ((a . 2)(b . 3)) 

 (3) аргументы: x – 'a v – 3 al - ((b .3) (c . 2)) Результат: ((b . 3)(c . 2)(a . 3)) 

 (4) аргументы: x – 'a v – 3 al – ((a . 2)(a . 4)(b . 2)) Результат: ((a . 2)(a . 3)(a . 4)(b . 2)) 

 (5) аргументы: x – 'a v – 3 al – ((a . 2)(a . 4)(b . 2)) Результат: ((a . 3)(a . 4)(b . 2)) 


Упражнение 10:
Номер 1
В каком случае правильно указано число вызовов функция Cons (входящей в состав определения sublis)  при вызове функции sublis, имеющей определение
			
(DEFUN sub2 (al z) (COND 
     ((null al) z)
     ((equal (CAAR al) z) (CDAR al))
     ((QUOTE T) (sub2 (CDR al) z))
        ) )

(DEFUN sublis (al y) (COND 
      ((ATOM y) (sub2 al y))
       ((QUOTE T)(CONS 
     (sublis al (CAR y)) 
         (sublis al (CDR y))
    ) )))
     
			

при интерпретации выражений с указанными ниже аргументами:


Ответ:

 (1) вызовов 2, al- ((C . A) (D . B)), y – (C D) 

 (2) вызовов 6, al- ((C . A) (D . B)), y – (C D) 

 (3) вызовов 4, al- ((C . A) (D . B)), y – (C D) 


Номер 2
В каком случае правильно указано число вызовов функция Cons (входящей в состав определения sublis)  при вызове функции sublis, имеющей определение
			 
(DEFUN sub2 (al z) (COND 
       ((null al) z)
       ((equal (CAAR al) z) (CDAR al))
       ((QUOTE T) (sub2 (CDR al) z))
        ) )

(DEFUN sublis (al y) (COND 
        ((ATOM y) (sub2 al y))
         ((QUOTE T)(CONS 
     (sublis al (CAR y)) 
       (sublis al (CDR y))
    ) ))) 
			
			

при интерпретации выражений с указанными ниже аргументами:


Ответ:

 (1) вызовов 5, al- ((A .1) (B . 2)), y – (C . 3) 

 (2) вызовов 1, al- ((A .1) (B . 2)), y – (C . 3) 

 (3) вызовов 0, al- ((A .1) (B . 2)), y – (C . 3) 


Номер 3
В каком случае правильно указано число вызовов функция Cons (входящей в состав определения sublis)  при вызове функции sublis, имеющей определение
			
(DEFUN sub2 (al z) (COND 
   ((null al) z)
   ((equal (CAAR al) z) (CDAR al))
   ((QUOTE T) (sub2 (CDR al) z))
        ) )

(DEFUN sublis (al y) (COND 
    ((ATOM y) (sub2 al y))
     ((QUOTE T)(CONS 
       (sublis al (CAR y)) 
       (sublis al (CDR y))
    ) )))
		 
		 

при интерпретации выражений с указанными ниже аргументами:


Ответ:

 (1) вызовов 5, al- ((C A) (D B)), y – (C и D сидели на трубе) 

 (2) вызовов 7, al- ((C A) (D B)), y – (C и D сидели на трубе) 

 (3) вызовов 6, al- ((C A) (D B)), y – (C и D сидели на трубе) 




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