Функциональное программирование - ответы

Количество вопросов - 136

Как определяются значения логического типа при формальном построении языка функционального программирования?

Какая алгоритмическая модель лежит в основе функционального программирования?

Какие ошибки содержаться в приведенном фрагменте кода?
1 let ProcessImageAsync () =2   async { let inStream  = File.OpenRead(sprintf "Image%d.tmp" i)3     let pixels    = inStream.ReadAsync(numPixels)4     let  pixels'   = TransformImage(pixels,i)5     let  outStream = File.OpenWrite(sprintf "Image%d.done" i)6     do  outStream.WriteAsync(pixels') }

Как реализуются повторяющиеся действия в функциональных языках?

Какой список будет порожден конструкцией [1..2..10]?

Какой тип имеет функция apply в Eval/Apply-интерпретаторе?

При вычислении длины списка n с помощью хвостовой рекурсии, сколько памяти выделяется в стеке?

Что означает запись <@ fun x→​ x*2 @>?

В чем разница между конструкциями fun и function в F#?

При нормальном порядке редукции:

Какие из преобразований надо применить, чтобы редуцировать (λx.sin x) 0 →​ 0?

Возможно ли в F# использовать ленивые вычисления?

Какое множество значений у прямой суммы T1+T2?

Как можно свести нелинейно-рекурсивную функцию к хвостовой рекурсии?

Неразрешимость проблемы остановки означает:

Какие комбинаторы образуют наименьший базис?

В каком представлении эффективнее хранить разреженные матрицы?

Что помещается в стек возвратов D SECD-машины?

Какой тип имеет функция map?

Какие языки программирования являются преимущественно функциональными?

Как правильно описать дерево общего вида на F#?

Какой будет результат выполнения let x::y = [1;2;3;4] ?

Какова сложность проверки вхождения элемента в список длины n?

Какой порядок редукции соответствует передаче параметров по значению?

Укажите правильное монадическое свойство:

В каком порядка обходятся поддеревья в инфиксном порядке обхода?

Почему контестно-свободная грамматика удобна для разбора методом рекурсивного спуска?

Какая рекурсия называется линейной?

Почему функциональное программирование сейчас представляет повышенный интерес для изучения?

Какого типа выражение async { return 10; }?

Какой принцип построения функциональных программ?

В чем отличия фунционального программирования и императивного?

Какие недостатки "классической" нотации для определения функции f(x)=2*x+1?

Пусть mul3 – каррированная функция умножения трех целых чисел, mul3 = xyz.x*y*z. Какой будет тип у выражения (mul3 5)?

Как описать повторяющиеся действия в функциональном языке?

Какая функция может быть использована для удаления из списка всех элементов, делящихся на 3?

Какой тип имеет функция fold_left?

Какими способами можно создать список четных чисел от 1 до 10?

В каком представлении матриц проще реализовать операцию транспонирования?

Какова сложность добавления элемента в конец списка длины n?

В каком порядка обходятся поддеревья в постфиксном порядке обхода?

Как обычно представляется дерево арифметического выражения?

Какая модель вычислений служит формальной основой функционального программирования?

Какая операция применяет функцию к аргументу?

Как расставляются скобки в выражении λx.λy.e1e2?

Какой самый внешний редекс в выражении (λx.λy.y) ((λz.z z) (λz.z z))?

Какой будет следующий шаг при аппликативном порядке редукции выражения (λx.x+x)(2+3)?

Что является следствием теоремы стандартизации?

Как определяется конструкция letrec?

Что такое замыкание?

Что такое мемоизация?

При статическом контроле типов:

Как определяется множество значений для типа, описанного как type tree = {nil} + int X treeX tree?

Что необходимо сделать для вывода типов в некотором выражении?

Что такое операционная семантика языка программирования?

Как определяется наименьшая неподвижная точка непрерывной функции f в соответствии с теоремой о неподвижной точке?

Что помещается в стек объектов S SECD-машины?

Программа, порожденная генератором fsyacc:

В чем разница между записями <@ fun x→​ x*2 @> и <@@ fun x→​x*2 @@>?

Что такое монада?

Чему равен результат выражения nondet { return 10; } для монады недетерминированных вычислений?

Сколько потоков выполнения операционной системы будет порождаться при выполнении операции Async.RunSynchronously(Async.Parallel([ for i in 1..100 →​ async { return fib(i) }]))?

Как определяется конструкция let?

Укажите правильное монадическое свойство:

Какого типа выражение <@@ (1+2)*3 @@>?

Какой будет наиболее общий тип для функции tl: let tl x::t = t?

Что такое каррирование?

Почему функциональные программы не содержат побочных эффектов?

Почему следует стараться использовать хвостовую рекурсию?

При введении списков, как определяется функция отделения первого элемента hd?

Какие стеки включает в себя SECD-машина?

Что такое дерево поиска?

Какой функции эквивалентна запись [ for x in L →​ x*2 ]?

В динамических языках программирования:

Пусть L – генератор последовательности длины n. Какова сложность операции map f L?

Какие базовые операции чистого лямбда-исчисления?

Какое множество значений у типа T1 →​ Т2?

При реализации синтаксического анализатора методом рекурсивного спуска, какой тип удобно использовать для функции parse:

Какой тип у каррированной функции сложения целых чисел?

Какому способу передачи параметров соответствует аппликативный порядок редукции?

Какие есть основные модели вычислений?

Система вывода типов (Хиндли-Милнера) – это:

С помощью какой функции можно удалить из списка все элементы, стоящие на четных позициях?

Как можно отделить голову и хвост списка?

За счет чего функциональные программы содержат меньше ошибок?

Как правильно расставить скобки в выражении лямбда-исчисления, чтобы вычислить f(g(x))?

Как определяют рекурсивные вычисления в лямбда-исчислении?

Какая функция, определенная на домене D, обязательно имеет неподвижную точку?

Как правильно параллельно вычислить сумму 100-го и 200-го чисел Фибоначчи?

Пусть геометрическое преобразование определяется функцией трансляции координат int*int →​ int*int. Мы хотим определить функцию сдвига translate : int*int, которая возвращался бы замыкание. Как это сделать?

Какие операторы традиционно отсутствуют в функциональных языках?

Какие основные способы борьбы со сложностью используются в функциональных программах?

В чем разница между конструкциями fun и function в F#?

C помощью какой функции можно эффективно посчитать сумму элементов целочисленного списка?

Разреженная матрица размерности nXn с m ненулевыми элементами представляется в виде функции int*int →​ float. Какова будет сложность операции умножения всех элементов матрицы на 2?

Как связаны двоичные деревья и деревья общего вида?

В каком порядка обходятся поддеревья в префиксном порядке обхода?

Какая операция понижает порядок функции?

Какое из приведенных ниже преобразований является примером бета-редукции?

Какой самый внутренний редекс в выражении (λx.λy.y) ((λz.z z) (λz.z z))?

При аппликативном порядке редукции:

Что является следствием теоремы Черча-Россера?

Можно ли в F# изменять контекст вычисления функции внутри замыкания?

Зачем в F# необходимо статически ассоциировать типы с именами?

Что такое пропозициональная семантика языка программирования?

Как определяется семантика рекурсивных функций?

Возможно ли построить автоматический верификатор произвольных функциональных программ на зацикливаемость?

Какой тип имеет функция eval в Eval/Apply-интерпретаторе?

Почему проще формулировать и доказывать корректность программ на чистом функциональном языке?

Как описываются рекурсивные функции в F#?

Как записать выражение для последующего параллельного вычисления значения функции fib?

Какое из приведенных ниже преобразований является примером альфа-редукции?

В чем разница между записями <@ fun x→​ x*2 @> и fun x→​ <@ x*2 @>?

Где может использоваться сопоставление с образцом в F#?

Что такое продолжение (continuation)?

Что такое домены?

Как представляется число n в виде нумерала Черча?

Какой будет следующий шаг при нормальном порядке редукции выражения (λx.x+x)(2+3)?

Какова сложность добавления элемента на первое место списка длины n?

Какая алгоритмическая модель лежит в основе императивного программирования?

Какое максимальное количество неподвижных точек может иметь функция?

Какие основные операции в чистом λ-исчислении?

Какой тип имеет функция filter?

Как расставляются скобки в выражении f sin x*2?

Для реализации ленивого Eval/Apply-интерпретатора необходимо, в частности:

Какова сложность поиска в дереве поиска?

За счет чего функциональные программы обычно содержат меньше ошибок, чем императивные?

Какой будет результат сопоставления let x::y::z = [1;2]?

Какие условия являются необходимыми для хвостовой рекурсии?

Алгоритм вывода типов W содержит в себе следующие основные этапы:

Eval/Apply-интерпретатор состоит из

Какая операция повышает порядок функции?

Что такое денотационная семантика языка программирования?

Как определяется функция в λ-исчислении?

В чем преимущества лямбда-исчисления как модели вычислений?

Как правильно описать двоичное дерево на F#?