Главная / Программирование /
Язык и библиотеки Haskell 98 / Тест 4
Язык и библиотеки Haskell 98 - тест 4
Упражнение 1:
Номер 1
Какие объявления входят в группу классов типов и перегрузок:
Ответ:
 (1) topdecl 
 (2) simpleclass 
 (3) class 
 (4) newtype 
 (5) module 
 (6) vars 
Номер 2
Какие объявления входят в группу определяемых пользователем типов данных:
Ответ:
 (1) instance 
 (2) default 
 (3) data 
 (4) type 
 (5) dclass 
 (6) simpletype 
Номер 3
Какие объявления не входят в группу вложенных объявлений:
Ответ:
 (1) class 
 (2) type 
 (3) default 
 (4) vars 
 (5) fixity 
 (6) op 
Упражнение 2:
Номер 1
Какие типы данных называются "зашитыми":
Ответ:
 (1) строковые 
 (2) символьные 
 (3) строковые и символьные 
 (4) строковые и целые 
 (5) целые числа и числа с плавующей точкой 
 (6) символьные и числа с плавующей точкой 
Номер 2
Сколько возможных форм может иметь вид:
Ответ:
 (1) 1 
 (2) 2 
 (3) 3 
 (4) 4 
Номер 3
Сколько форм имеет вид?
Ответ:
 (1) 1 
 (2) 2 
 (3) 3 
 (4) 4 
Упражнение 3:
Номер 1
Тип списка обозначается:
Ответ:
 (1) [] 
 (2) () 
 (3) {} 
 (4) *_* 
Номер 2
Тип функции обозначается:
Ответ:
 (1) [] 
 (2) () 
 (3) {} 
 (4) *_* 
Номер 3
Типы кортежей обозначаются:
Ответ:
 (1) (,),(,,),(,,,) 
 (2) [] 
 (3) () 
 (4) {},{,},{,,} 
Упражнение 4:
Номер 1
Типы данных data,newtype,type можно использовать:
Ответ:
 (1) на любом уровне модуля 
 (2) на верхнем уровне модуля 
 (3) на нижнем уровне модуля 
 (4) вообще не используются 
Номер 2
Объявление синонимов типа имеет вид:
Ответ:
 (1) type T u1...uk = t 
 (2) data T u1..uk = t 
 (3) newtype T u1..uk = t 
Номер 3
Какое объявление будет правильным, если натуральные числа будут представлены через тип Integer:
Ответ:
 (1) type Natural = MakeNatural Integer 
 (2) newtype Natural = MakeNatural Integer 
 (3) data Natural = MakeNatural Integer 
Упражнение 5:
Номер 1
Из перечисленных примеров синонимом типа является:
Ответ:
 (1) type String = [Char] 
 (2) data Tree s = Leaf a | Branch (Tree a) (Tree b) 
 (3) data point a = Pt a a 
Номер 2
Из перечисленных примеров алгебраическим типом данных является:
Ответ:
 (1) Newtype Slowo = bigslow String 
 (2) data Point = Point Int 
 (3) type Name = String 
Номер 3
Из перечисленных примеров переименованным типом является:
Ответ:
 (1) data List = String 
 (2) Newtype Cercle = Newcircle Float 
 (3) type Persone = (Name, Address) 
Упражнение 6:
Номер 1
Какие из ниже перечисленных объявлений экземпляров запрещены:
Ответ:
 (1) instance Functor Tree where ... 
 (2) instance Functor (fun,fun) where... 
 (3) instance Functor (Int,Int) where ... 
Номер 2
Какие из ниже перечисленных объявлений экземпляров возможны:
Ответ:
 (1) instance F (a,a) where ... 
 (2) instance Functor (fun,fun) where... 
 (3) instance Fun Fn where ... 
Номер 3
Какие из ниже перечисленных объявлений экземпляров будут правильными:
Ответ:
 (1) instance (Eq a,Show a) = Foo [a] where ... 
 (2) class Foo a ⇒ Bar a where... 
 (3) instance Num a ⇒ Foo [a] where ... 
Упражнение 7:
Номер 1
Отметьте классы для которых разрешены производные экземпляры:
Ответ:
 (1) Eq 
 (2) Ord 
 (3) Sqrt 
 (4) Exp 
 (5) Show 
Номер 2
Отметьте классы которые относятся к производным экземплярам:
Ответ:
 (1) Eq 
 (2) Ord 
 (3) Enum 
 (4) Int 
Номер 3
Какие опреации определяет класс Eq:
Ответ:
 (1) == и /= 
 (2) => и /> 
 (3) =< и = 
 (4) >,< и = 
Упражнение 8:
Номер 1
К infix - объявлениям относится:
Ответ:
 (1) infix 
 (2) lfix 
 (3) infixr 
 (4) rfix 
Номер 2
infix - это:
Ответ:
 (1) свободный оператор 
 (2) неассоциативный 
 (3) ассоциативный 
Номер 3
infixl задает:
Ответ:
 (1) правило вычисления целых чисел 
 (2) преоритет операторов 
 (3) условие завершения цикла 
Упражнение 9:
Номер 1
Оператор 'div' является:
Ответ:
 (1) неассоциативным 
 (2) ассоциативным 
 (3) левоассоциативным 
 (4) правоассоциативным 
Номер 2
Оператор 'seq' имеет приоритет:
Ответ:
 (1) 1 
 (2) 2 
 (3) 3 
 (4) 8 
 (5) 9 
 (6) 0 
Номер 3
Оператор 'infixr 7 *' имеет приоритет:
Ответ:
 (1) 1 
 (2) 0 
 (3) 3 
 (4) 9 
 (5) 7 
Упражнение 10:
Номер 1
Связыванием имен в образце является:
Ответ:
 (1) (x + 1) = ... 
 (2) (+) x 1 = ... 
 (3) (*)(x + 1) y = ... 
 (4) (x + 1) * y = ... 
 (5) (+) x 1 y = ... 
Номер 2
Связывание имен в функции является:
Ответ:
 (1) x + 1 = ... 
 (2) (+) x 1 = ... 
 (3) (x + 1) * y = ... 
 (4) (+) x 1 y = ... 
Номер 3
Выражение (*) (x+1) y = ... является:
Ответ:
 (1) связыванием имен в функциях 
 (2) связывание имен в образце 
 (3) связывание имен переменных 
Упражнение 11:
Номер 1
Что будет являться результатом show (2 + 2) = :
Ответ:
 (1) 4 
 (2) 2 + 2 
 (3) (2 + 2) 
Номер 2
Какие две операции определяют класс Monad:
Ответ:
 (1) >>= и return 
 (2) = и where 
 (3) show и read 
Номер 3
Монада - это:
Ответ:
 (1) функция 
 (2) конструктор 
 (3) контейнер