Материалы для занятий по Haskell

Здесь находится информация для студентов, изучающих язык Haskell в рамках кафедрального практикума на 3-м курсе.

Материалы с семинаров

Конспекты семинаров в PDF и код с семинаров.

Стоит учесть, что конспекты писались по памяти после семинаров и изложение в них может в некоторой степени отличаться от изложения на семинаре. Код писался до семинаров, но поскольку в процессе проведения семинар менялся, код правился после по памяти.

Код проверен в Hugs98.

  1. Функции, базовые типы данных (20 октября) - Код с семинара
  2. Безымянные функции, кортежи, алгебраические типы данных (27 октября) - Код с семинара
  3. Деревья и функции высшего порядка, деревья поиска (3 ноября) - Код с семинара
  4. Параметрический полиморфизм (10 ноября) - Код с семинара
  5. Классы типов (17 ноября) - Код с семинара
  6. Списки (23 марта) - Код с семинара
  7. Бесконечные списки (30 марта) - Код с семинара
  8. Монады и ввод-вывод (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 squar­e x = x*x in 1 + squar­e 4

Соответственно, можно использовать в начальных экспериментах с синтаксисом, однако что-то сложное сделать не получится.

Работа в интерактивной консоли

Команды, которые могут быть полезны при работе в интерактивной консоли Haskell:

:l <имя файла>
Загрузить указанный файл
:r
Перезагрузить загруженные файлы
:t <выражение>
Вывести тип указанного выражения

Обратная связь

В случае обнаружения ошибок/неточностей на странице или в конспектах сообщите, пожалуйста, на alexey.noskov+haskell [at] gmail.com