Главная / Программирование /
Язык и библиотеки Haskell 98 / Тест 3
Язык и библиотеки Haskell 98 - тест 3
Упражнение 1:
Номер 1
Префиксная запись находится в выражении:
Ответ:
 (1) x 'op' y
 
 (2) x + y
 
 (3) (-) x y
 
 (4) x y (+)
 
Номер 2
Инфиксная запись находится в выражении:
Ответ:
 (1) (+) x y
 
 (2) 'op' x y
 
 (3) x 'op' y
 
 (4) x (+) y
 
 (5) x y 'op'
 
Номер 3
Во что заключается инфиксный оператор?
Ответ:
 (1) кавычки 
 (2) апострофы 
 (3) обратные кавычки 
Упражнение 2:
Номер 1
Каких операторов не имеет Haskell?
Ответ:
 (1) префиксных 
 (2) инфиксных 
 (3) постфиксных 
Номер 2
В каком диапазоне изменяется переменная ассоциативности а
?
Ответ:
 (1) {l,r,n} 
 (2) {k,l,m} 
 (3) {l,r,m} 
Номер 3
Сколько уровней приоретета имеет Haskell?
Ответ:
 (1) 0-9 
 (2) 0-5 
 (3) 0-6 
 (4) 0-16 
Упражнение 3:
Номер 1
infixr 5 ++ infixr 9 .
Эти операторы являются:
Ответ:
 (1) левоассоциативными 
 (2) ассоциативными 
 (3) правоассоциативными 
Номер 2
Как будет интерпретироваться выражение f x + g y
при разборе? Выберите правильный вариант:
Ответ:
 (1) f x (+) g y
 
 (2) (f x) + (g y)
 
 (3) f (x + g) y
 
 (4) f (x) + g (y)
 
Номер 3
Каким значением определяются ошибки?
Ответ:
 (1) error 
 (2) warning 
 (3) #116 
 (4) ⊥ 
Упражнение 4:
Номер 1
Что значит условное обозначение varop
:
Ответ:
 (1) оператор переменной 
 (2) оператор 
 (3) переменная 
 (4) оператор конструктора 
Номер 2
Выберите правильный вариант. При альтернативной интерпретации, писать нужно:
Ответ:
 (1) e1-e2
 
 (2) e1(- e2)
 
 (3) (e1 -) e2
 
 (4) -(e1 e2)
 
Номер 3
На какую функцию ссылается унарный оператор?
Ответ:
 (1) negate
 
 (2) head
 
 (3) Prelude
 
 (4) op
 
Упражнение 5:
Номер 1
В каком из примеров записан список?
Ответ:
 (1) (1,2,3..45)
 
 (2) ['a','b','c','d']
 
 (3) {1,2,'a','b','c'}
 
 (4) List ('a','b','c')
 
Номер 2
Выберите неверную запись:
Ответ:
 (1) [1,2,3]
 
 (2) ['a','b','c']
 
 (3) [1,2,a,b]
 
Номер 3
В каком примере записан кортеж?
Ответ:
 (1) [a,b,c]
 
 (2) (a,b,c)
 
 (3) {a,b,c}
 
 (4) cor (a,b,c)
 
Упражнение 6:
Номер 1
Выберите верную запись:
Ответ:
 (1) [1,2,3]
 
 (2) {a,b,c}
 
 (3) [1,2,a,b]
 
 (4) (a,1,b,2)
 
Номер 2
Выберите правильный вариант ответа. Как выразить это [1,3..10]
в Haskell?
Ответ:
 (1) 1,3,4,5,6,7,8,9,10 
 (2) 1,3..10 
 (3) 1,3,10 
 (4) 1,3,5,7,9 
Номер 3
Выберите неправильные варианты ответа.Выражение [1,4..10]
Haskell интерпретирует как:
Ответ:
 (1) [1,4,7,10] 
 (2) [1,4,8,10] 
 (3) [1,4,10] 
 (4) [1,4,5,6,7,8,9,10] 
Упражнение 7:
Номер 1
Выберите правильный вариант. Выражение [2,4..15]
Haskell интерпретирует как:
Ответ:
 (1) [2,4,6,8,10,12,14] 
 (2) [2,4,5,6,7,8,9,10,11,12,13,14,15] 
 (3) [2,4,15] 
Номер 2
Каким выражением можно заменить выражение if e1 then e2 else e3
Ответ:
 (1) case e1 of True → e2 False → e3
 
 (2) if e1 then e2
 
 (3) if e1 = e2 then e3
 
 (4) case e1 else e2
 
Номер 3
В каком примере правильно объявлен новый тип данных:
Ответ:
 (1) String Color = Red|Green|Yellow
 
 (2) Char Color = Red|Green|Yellow
 
 (3) data Color = Red|Green|Yellow
 
Упражнение 8:
Номер 1
Выберите правильный вариант. Правила для обновления гласят:
Ответ:
 (1)
• все имена берутся из одного типа данных;
• все имена определяют один конструктор;
• имена упоминаются только один раз;
• значение должно содержать все указанные имена. 
 (2)
• имена могут быть разных типов данных;
• конструктор не должени содержать все имена;
• допущено упоминание несколько раз одно и тоже;
• при не верном написании имени возникает ошибка. 
 (3)
• все имена берутся из одного типа данных;
• конструкторы не определяют имена;
• хоть одно имя должно быть объявлено;
• при несоблюдении выше указанных правил возникает ошибка. 
Номер 2
Выберите правильный вариант записи с точки зрения синтаксиса:
Ответ:
 (1) data T = t1{c|a|1|2|3} | t2 {True|False|t1}
 
 (2) data T = t2, t3
 
 (3) data T = {c|a|b},{1|2|3}
 
Номер 3
Выражение data Dogs = Dog|Doberman|Spaniel|Taksa
означает:
Ответ:
 (1) объявление переменных 
 (2) создание нового конструктора 
 (3) объявление нового типа данных 
Упражнение 9:
Номер 1
Какой синтаксис имеют образцы:
Ответ:
 (1) pat,lpat,rpat,apat,fpat
 
 (2) var,gcon,aexp,conop,qop
 
 (3) lexp,exp,rexp,fexp,aexp
 
Номер 2
Выберите верное высказывание:
Ответ:
 (1) число аргументов конструктора соответствует числу образцов связанных с ним 
 (2) образцы не могут быть не линейными 
 (3) одна переменная появляется только один раз 
Номер 3
Что обозначает образец вида _:
Ответ:
 (1) группу любых символов 
 (2) неопределенные имена 
 (3) тоже самое, что и X 
Упражнение 10:
Номер 1
Понятие на языке Haskell страж означает:
Ответ:
 (1) функцию, которую мы описываем 
 (2) образец верхнего уровня 
 (3) логическое выражение 
Номер 2
Правило case v of {p1 match1; ...; pn matchn} = case v of {p1 match1; _ → ...
case v of {pn matchn; _ → error "нет сопоставлений"}...}
соответствует:
Ответ:
 (1) основному case-выражению 
 (2) перегруженному оператору == 
 (3) вычислению с помощью == 
Номер 3
Выберите верное утверждение:
Ответ:
 (1) сопоставление образца var значению v всегда имеет успех и связывает var с v 
 (2) инфиксные операторы в действительности представляют собой обычные функции 
 (3) сечением называется частичное применение инфиксного оператора