Читаем Учебник по Haskell полностью

Обзор Hackage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318

Стандартные библиотеки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318

Эффективные типы данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319

Разработка программ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319

И все-все-все . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319

Места . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321

Университеты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321

Компании . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321

10

Предисловие

История языка Haskell начинается в 1987 году. В 1980е годы наблюдался всплеск интереса к ленивой

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

граммисты задумались и решили, объединив усилия, найти общий язык. Так появился Haskell. Он был назван

в честь одного из основателей комбинаторной логики Хаскеля Кэрри (Haskell Curry).

Новый язык должен был стать свободным языком, пригодным для исследовательской деятельности и

решения практических задач. Свободные языки основаны на стандарте, который формулируется комите-

том разработчиков. Дальше любой желающий может заняться реализацией стандарта, написать компилятор

языка. Первая версия стандарта была опубликована 1 апреля 1990 года. Haskell продолжает развиваться

и сегодня, было зафиксировано два стандарта: 1998 и 2010 года. Это стабильные версии. Но кроме них в

Haskell включается множество расширений, проходит обкат интересных идей. Сегодня Haskell переживает

бурный рост, к сожалению, эпицентры далеки от России, это Англия, Нидерланды, Америка и Австралия. Ин-

терес к Haskell вызван популярностью многопроцессорных технологий. Модель вычислений Haskell хорошо

подходит для распараллеливания. И сейчас проводятся исследования в этой области.

Haskell очень красивый и лаконичный язык. Он придётся по душе математикам, программистам, склон-

ным к поиску элегантных решений. В арсенале программиста: строгая типизация с выводом типов, функции

высшего порядка, алгебраические типы данных, алгебраические структуры. Если пока всё это звучит как

набор слов, ничего страшного, вы узнаете что это по ходу чтения книги.

Структура книги

Haskell славится высоким порогом вхождения. Он считается трудным языком для начинающих. Во многом

это связано с тем, что начинающие уже имеют приличный опыт программирования на императивных языках.

И при первом знакомстве оказывается, что этот опыт ничем не может им помочь. Они не могут найти в Haskell

аналогов привычных синтаксических конструкций и приёмов программирования. Haskell сильно отличается

от распространённых языков программирования. Но если вы совсем-совсем начинающий, скорее всего в этом

плане вам будет гораздо проще. Если вы всё же не начинающий, попробуйте подойти к материалу этой книги

с открытым сердцем. Не ищите в Haskell элементы вашего любимого языка и, возможно, таким языком станет

Haskell.

Ещё одна трудность связана с тем, что многие понятия тесно переплетены, Haskell не так просто разбить

на маленькие части и изучать их от простого к сложному, уже в самых простейших элементах кроются черты

новых и непривычных идей. Но, я надеюсь, что мы сможем преодолеть и этот барьер, мы не будем изучать

Haskell по кусочкам, а окунёмся в него с головой, уже в первой главе мы пробежимся по всему языку и далее

будем углубляться в отдельные моменты.

В книге много примеров. Haskell оснащён интерпретатором. Интерпретатор (также называемый REPL, от

англ. read-eval-print loop) позволяет писать программы в диалоговом режиме. Мы набираем выражение языка

и сразу видим ответ – вычисленное значение. Интерпретатор поможет нам разобраться во многих тонкостях

языка. Мы будем обращаться к нему очень часто.

Книгу можно разбить на несколько частей:

• Основы языка (1-13). Из первых тринадцати глав вы узнаете, что такое Haskell и чем он хорош.

• Теоретическая часть (14-16). Haskell питается соками математики, многие красивые научные идеи не

только находят в нём воплощение, но и являются фундаментом языка. Из этих глав вы узнаете немного

теории, которая служила источником вдохновения разработчиков Haskell.

• Разработка на Haskell (10,17-20). В этих главах мы познакомимся с расширениями языка (17), мы узна-

ем как писать библиотеки и документацию (18), проводить тестирование и оценивать быстродействие

программ (19), также мы потренируемся в написании императивного кода на Haskell (20). Из главы 10

мы узнаем как работает GHC, основной компилятор для Haskell.

Предисловие | 11

• Примеры (13, 21). В этих главах мы посмотрим на несколько примеров применения Haskell. В глваве

13 мы напишем программу для игры в пятнашки, а в главе 21 – midi-секвенсор и немного музыки.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных