Общая информация
Во 2 семестре 2009–2010 учебного года на практических занятих по обязательному спецкурсу
«Парадигмы программирования» изучается язык Haskell. Компилятор ghc
установлен на компьютере linux.fenster.name , доступ к которому есть из сетей НГУ,
academ.org и HomeNet.
Преподаватель: Александр Геннадьевич Фенстер, fenster@fenster.name, +7 913 9053295.
Лектор: Лидия Васильевна Городняя.
Вопросы к зачёту от лектора: rtf
Рекомендуемая литература:
- Душкин Р. В. Функциональное программирование на языке Haskell. М.: ДМК-пресс, 2006.
Лично я эту книгу заказал в books.ru и не пожалел;
вряд ли её реально найти в книжных магазинах в Новосибирске. Впрочем, если у кого-то
получится — сообщите мне, пожалуйста.
- A Gentle Introduction to Haskell на haskell.org
- Лекции по ФП Р. В. Душкина
- haskell.ru
|
|
Таблица результатов
#
|
Фамилия, имя
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
Итого
|
Оценка за практику
|
1 | Артиков Артур |
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
| 9 | |
2 | Артиков Тимур |
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
| 9 | |
3 | Архинчеева Светлана |
+
|
+
|
+
|
+
|
+
|
+
|
+
| | | 7 | |
4 | Боровский Виктор |
+
|
+
|
+
|
+
|
+
| | | | | 5 | |
5 | Васькин Юрий |
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
| 9 | |
6 | Грехов Герман |
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
| 9 | |
7 | Заречнева Юлия |
+
|
+
|
+
|
+
|
+
|
+
|
+
| | | 7 | |
8 | Зеленчук Андрей |
+
|
+
|
+
|
+
|
+
|
+
|
+
| | | 7 | |
9 | Золотухин Тимур |
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
| 9 | |
10 | Зятьков Николай |
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
| 9 | |
11 | Клименко Александр |
+
|
+
|
+
|
+
|
+
| | | | | 5 | |
12 | Колбин Дмитрий |
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
| 9 | |
13 | Комышев Евгений | | | | | | | | | | 0 | |
14 | Кузнецов Илья |
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
| 9 | |
15 | Кузьмин Павел |
+
|
+
|
+
|
+
|
+
|
+
| |
+
|
+
| 8 | |
16 | Мартьянов Андрей |
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
| 9 | |
17 | Матвиенко Сергей |
+
|
+
|
+
|
+
|
+
|
+
|
+
| |
+
| 8 | |
18 | Никитин Виктор |
+
|
+
|
+
|
+
|
+
|
+
|
+
| | | 7 | |
19 | Никулин Вячеслав |
+
|
+
|
+
|
+
|
+
| | | | | 5 | |
20 | Сердюк Константин |
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
| 9 | |
21 | Скуридина Валентина |
+
|
+
|
+
|
+
|
+
|
+
| | |
+
| 7 | |
22 | Суслопаров Денис |
+
|
+
|
+
| | | | | | | 3 | |
23 | Татаринцев Павел |
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
| 9 | |
24 | Тейтельбаум Дмитрий |
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
|
+
| 9 | |
25 | Хлебников Сергей |
+
|
+
|
+
|
+
|
+
|
+
| | | | 6 | |
26 | Царапкин Михаил |
+
|
+
|
+
|
+
|
+
|
+
| | |
+
| 7 | |
Гистограмма
|
Список семестровых заданий
- Слияние списков. Реализовать слияние двух списков, не используя операцию
++ .
append1 [1,2,3,4] [5,6,7] = [1,2,3,4,5,6,7]
- Разворот списка. Реализовать разворот списка.
reverse1 [1,2,3,4] = [4,3,2,1]
- Бесконечные списки — 1. Реализовать функцию, возвращающую список чисел Фибоначчи.
take 7 fib = [0,1,1,2,3,5,8]
- Бесконечные списки — 2. Реализовать функцию, возвращающую список всех простых чисел.
take 6 primes = [2,3,5,7,11,13]
- Сортировка. Реализовать функцию, сортирующую список сравнимых (
Ord a ) элементов
в порядке неубывания.
sort1 [3,1,5,4,2] = [1,2,3,4,5]
- Перестановки. Реализовать функцию, генерирующую список всех перестановок элементов списка.
permut [1,2,3] = [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
- Бинарные деревья. Реализовать модуль
Tree , содержащий необходимые функции для работы с
бинарными деревьями поиска. Должны быть реализованы следующие функции:
- создание пустого дерева;
- вставка элемента в дерево поиска (возвращается новое дерево);
- удаление элемента из дерева поиска (возвращается новое дерево);
- определение наличия элемента в дереве поиска;
- вывод значений узлов дерева поиска в порядке возрастания (инфиксный обход), в порядке префиксного обхода и
в порядке обхода в ширину;
- вывод дерева в виде скобочной записи (например,
(2,(1,(),()),(3,(),(4,(),()))) ).
Пример создания модуля и своего типа: tgz (tar xzf haskell-modules.tar.gz ).
- Индивидуальное задание — 1.
- Индивидуальное задание — 2. Условия задач находятся в отдельном файле,
распределение задач — здесь.
|