-
Домашняя работа 1. 14.02.20
-
Посчитать факториал
-
Посчитать числа Фибоначчи (за линейное время)
-
Реализовать функцию обращения списка (за линейное время)
-
Реализовать функцию, которая принимает на вход n и m и возвращает список из степеней 2 от n до n + m
-
Реализовать функцию, которая выдает первую позицию вхождения заданного числа в список
-
-
Домашняя работа 2. 21.02.20
-
Реализовать три варианта функции, подсчитывающей количество четных чисел в списке (с использованием стандартных функций map, filter, fold). Использование рекурсии не допускается, зато нужен FsCheck для проверки функций на эквивалентность
-
Реализовать функцию, применяющую функцию к каждому элементу двоичного дерева и возвращающую новое двоичное дерево, каждый элемент которого --- результат применения функции к соответствующему элементу исходного дерева (map для деревьев)
-
Посчитать значение дерева разбора арифметического выражения, заданного через вложенные discriminated union-ы
-
Реализовать функцию, генерирующую бесконечную последовательность простых чисел
-
-
Домашняя работа 3. 28.02.20
-
Выполнить бета-редукцию λ-терма ((λa.(λb.b b) (λb.b b)) b) ((λc.(c b)) (λa.a)). Решение (в виде последовательности преобразований) набрать в TeX-е и выложить файл .tex на GitHub.
-
Докажите, что S K K = I.
-
Реализовать интерпретатор лямбда-выражений, выполняющий бета-редукцию по нормальной стратегии. Лямбда-выражения задаются через размеченные объединения. Должна поддерживаться альфа-конверсия для избежания захвата свободных переменных.
-
-
Домашняя работа 4. 06.03.20
-
Реализовать функцию, которая по произвольной строке проверяет корректность скобочной последовательности в этой строке. Скобки бывают трёх видов.
-
Записать в point-free стиле
func x l = List.map (fun y -> y * x) l
. -
Написать программу - телефонный справочник. Она должна уметь хранить имена и номера телефонов, в интерактивном режиме осуществлять следующие операции:
- выйти
- добавить запись (имя и телефон)
- найти телефон по имени
- найти имя по телефону
- вывести всё текущее содержимое базы
- сохранить текущие данные в файл
- считать данные из файла
-