Материалы для занятий по Haskell |
Здесь находится информация для студентов, изучающих язык Haskell в рамках кафедрального практикума на 3-м курсе.
Материалы с семинаров
Конспекты семинаров в PDF и код с семинаров.
Стоит учесть, что конспекты писались по памяти после семинаров и изложение в них может в некоторой степени отличаться от изложения на семинаре. Код писался до семинаров, но поскольку в процессе проведения семинар менялся, код правился после по памяти.
Код проверен в Hugs98.
- Функции, базовые типы данных (20 октября) - Код с семинара
- Безымянные функции, кортежи, алгебраические типы данных (27 октября) - Код с семинара
- Деревья и функции высшего порядка, деревья поиска (3 ноября) - Код с семинара
- Параметрический полиморфизм (10 ноября) - Код с семинара
- Классы типов (17 ноября) - Код с семинара
- Списки (23 марта) - Код с семинара
- Бесконечные списки (30 марта) - Код с семинара
- Монады и ввод-вывод (6 апреля) - Код с семинара
Реализации Haskell
Для экспериментов с языком можно использовать следующие реализации Haskell:
- Hugs 98
-
Версию для Windows можно найти в разделе Downloading сайта (1.4 или 14 Мб в зависимости от комплектации). Для основных дистрибутивов Linux/*BSD имеются пакеты (в частности, в Ubuntu - hugs).
Интерактивная консоль запускается командой hugs.
- GHC
-
Версию для Windows можно скачать как часть Haskell Platform (около 75 Мб). Для основных дистрибутивов Linux/*BSD имеются пакеты (в частности, в Ubuntu - ghc6).
Интерактивная консоль запускается командой ghci.
- TryHaskell
-
Онлайн-интерпретатор Haskell со встроенными уроками. Функции можно определять только в рамках вычисляемого выражения с использованием конструкций let, например:
let square x = x*x in 1 + square 4
Соответственно, можно использовать в начальных экспериментах с синтаксисом, однако что-то сложное сделать не получится.
Работа в интерактивной консоли
Команды, которые могут быть полезны при работе в интерактивной консоли Haskell:
:l <имя файла>
- Загрузить указанный файл
:r
- Перезагрузить загруженные файлы
:t <выражение>
- Вывести тип указанного выражения
Обратная связь
В случае обнаружения ошибок/неточностей на странице или в конспектах сообщите, пожалуйста, на alexey.noskov+haskell [at] gmail.com