Главная / Программирование /
Основы функционального программирования / Тест 13
Основы функционального программирования - тест 13
Упражнение 1:
Номер 1
Какая из функций соответствует спецификации аргументов и результатов (X List(X)) -> List(X)
?
Ответ:
 (1) (lambda (x y) (cons x y))
 
 (2) (lambda (x y) (eq x y))
 
 (3) (lambda (x) (cond (x (cond ((eq 'A (car x))x)))))
 
Номер 2
Аргументы и результаты какой из функций можно специфицировать формулой: (X List(X)) -> List(X)
?
Ответ:
 (1) (lambda (x y) (cons y x))
 
 (2) (lambda (x xl) (cond (xl (cond ((eq x (car xl))x)))))
 
 (3) (lambda (x xl) (cond (xl (cond ((eq x (car xl))xl)))))
 
Номер 3
Спецификации аргументов и результатов какой из функций может иметь вид: (X List(X)) -> List(X)
?
Ответ:
 (1) (lambda (x y) (append y x))
 
 (2) (lambda (x y z) (subst x y z))
 
 (3) (lambda (x xl) (cond (xl (cond ((atom x) (cons x xl)) (T xl)) ))
 
Упражнение 2:
Номер 1
Какая из функций не требует соответствия спецификации аргументов вида: (X List(X)) -> List(X)
?
Ответ:
 (1) (lambda (x y) (cond (x (cond ((eq y (car x))x)))))
 
 (2) (lambda (x y) (cons x (cdr y)))
 
 (3) (lambda (x y) (eq x (car y)))
 
Номер 2
Какая из функций не соответствует спецификации результатов (X List(X)) -> List(X)
?
Ответ:
 (1) (lambda (x xl) (cond (xl (cond ((eq x (car xl))xl)))))
 
 (2) (lambda (x y) (cons x y))
 
 (3) (lambda (x y) (eq x y))
 
Номер 3
Какая из функций не соответствует спецификации ни аргументов, ни результатов: (X List(X)) -> List(X)
?
Ответ:
 (1) (lambda (x y) (list x y))
 
 (2) (lambda (xl) (cond (xl (cond ((eq 'A (car xl))T)))))
 
 (3) (lambda (x y) (cons x y))
 
Упражнение 3:
Номер 1
Какая из функций соответствует спецификации аргументов: List(X) -> List(X)
?
Ответ:
 (1) (lambda (x ) (reverse x))
 
 (2) (lambda (xl) (cond (xl (cond ((cons 'A (car xl))T)))))
 
 (3) (lambda (x ) (cons 'A x))
 
Номер 2
Аргументы какой из функций должны соответствовать спецификации: List(X) -> List(X)
?
Ответ:
 (1) (lambda (x ) (append x '(1 2 3)))
 
 (2) (lambda (xl) (cond (xl (cond ((eq 'A xl)T)))))
 
 (3) (lambda (x y) (cons x y))
 
Номер 3
Спецификация аргументов какой из функций соотвествует формуле: List(X) -> List(X)
?
Ответ:
 (1) (lambda (x y) (delete y x))
 
 (2) (lambda (xl) (cond (xl (cond ((eq 'A (car xl))T)))))
 
 (3) (lambda (x ) (union '(A B C) x))
 
Упражнение 4:
Номер 1
Какая из функций соответствует спецификации результатов: (X List(X)) -> List(X)
?
Ответ:
 (1) (lambda (x y) (cons y 'A))
 
 (2) (lambda (x y) (member y x))
 
 (3) (lambda (x xl) (cond (xl (cond ((eq x (car xl))xl)))))
 
Номер 2
Спецификации результатов какой из функций соответствует формуле: (X List(X)) -> List(X)
?
Ответ:
 (1) (lambda (x y) (eq y x))
 
 (2) (lambda (x y) (delete x y))
 
 (3) (lambda (x xl) (cond (xl (cond ((eq x (car xl))T)))))
 
Номер 3
Результаты какой из функций соответствуют спецификации: (X List(X)) -> List(X)
?
Ответ:
 (1) (lambda (x y) (cons x Nil ))
 
 (2) (lambda (x y) (member y x))
 
 (3) (lambda (x xl) (cond (xl (cond ((eq x (car xl) ))) x)
 
Упражнение 5:
Номер 1
Какая из функций не соответствует спецификации результатов (X List(X)) -> List(X)
?
Ответ:
 (1) (lambda (x y) (member y x))
 
 (2) (lambda (x y) (cons x Nil ))
 
 (3) (lambda (x y) (list x x x ))
 
Номер 2
Спецификация результатов какой из функций не соответствует (X List(X)) -> List(X)
?
Ответ:
 (1) (lambda (x y) (eq y x)).
 
 (2) (lambda (x y) (cdr (list x x x )))
 
 (3) (lambda (x y) (cons x Nil ))
 
Номер 3
Результаты какой из функций не соответствуют спецификации: (X List(X)) -> X
?
Ответ:
 (1) (lambda (x xl) (cond (xl (cond ((eq x (car xl))x)))))
 
 (2) (lambda (x y) (car (print (list x x x ))) )
 
 (3) (lambda (x y) (cons x Nil ))
 
Упражнение 6:
Номер 1
Какая из спецификаций аргументов и результатов соответствует определению функции: (lambda (x xl) (cond (xl (cond ((eq x (car xl))xl)))))
Ответ:
 (1) List(Some) -> List(Some)
 
 (2) (Some List(Some)) -> Atom
 
 (3) (Atom List(Atom)) -> List(Atom)
 
Номер 2
Какая из спецификаций аргументов и результатов соответствует определению функции: (lambda (xl) (cond (xl (cond ((eq x (car xl))xl)))))
Ответ:
 (1) List(Atom) -> Atom
 
 (2) List(Some) -> List(Some)
 
 (3) Atom -> List(Some)
 
Номер 3
Какая из спецификаций аргументов и результатов соответствует определению функции: (lambda (x xl) (cond (xl (cond ((eq x (car xl))xl)))))
Ответ:
 (1) (Atom List(Some)) -> List(Some)
 
 (2) (Some List(Some))-> List(Some)
 
 (3) (Atom List(Atom)) -> List(Atom)
 
Упражнение 7:
Номер 1
Какая из спецификаций аргументов наиболее точно соответствует определению функции: (lambda (x xl) (cond (xl (cond ((eq x (car xl))(caadr xl))))))
Ответ:
 (1) (Atom List(Some)) )
 
 (2) (Some List(Some))
 
 (3) (Some List(Atom))
 
Номер 2
Какая из спецификаций аргументов соответствует определению функции: (lambda (x xl) (cond (xl (cond ((equal x (car xl)) (eq (cadr xl) x))))))
Ответ:
 (1) (Atom List(Some) )
 
 (2) (Some List(Some))
 
 (3) (Some Atom)
 
Номер 3
Какая из спецификаций результатов наиболее точно соответствует определению функции: (lambda (x xl) (cond (xl (eq x (car xl)) )) )
Ответ:
 (1) Some
 
 (2) Atom
 
 (3) Bool
 
Упражнение 8:
Номер 1
Какие из функций соответствуют спецификации аргументов и результатов:
(X List(X) ) -> List(X):
Ответ:
 (1) cons
 
 (2) eq
 
 (3) (lambda (x xl) (cond (xl (cond ((eq x (car xl))xl)))))
 
Номер 2
Какие из функций не соответствуют спецификации аргументов и результатов:
( X List(X)) -> List(X):
Ответ:
 (1) (lambda (x xl) (cond (xl (cond ((eq x (car xl))T)))))
 
 (2) cons
 
 (3) eq
 
Номер 3
Какие из функций соответствуют спецификации или аргументов, или результатов, но не того и другого сразу:
(X List(X)) -> List(X)
Ответ:
 (1) list
 
 (2) (lambda (x xl) (cond (xl (cond ((eq x (car xl))T)))))
 
 (3) cons
 
Упражнение 9:
Номер 1
Какие из спецификаций аргументов и результатов соответствуют определению функции:
(lambda (x xl) (cond (xl (cond ((eq x (car xl))xl)))))
Ответ:
 (1) (Atom List(Some) ) -> List(Some)
 
 (2) ( Some List(Some)) -> List(Atom)
 
 (3) ( Atom List(Atom)) -> List(Some)
 
Номер 2
Какие из спецификаций аргументов соответствуют определению функции:
(lambda (x xl) (cond (xl (cond ((eq x (car xl))T)))))
Ответ:
 (1) (Atom List(Some) )
 
 (2) ( Some List(Some))
 
 (3) (Some List(Atom))
 
Номер 3
Какие из спецификаций результатов соответствуют определению функции:
(lambda (x xl) (cond (xl (cond ((eq x (car xl))T)))))
Ответ:
 (1) Some
 
 (2) Atom
 
 (3) Bool