ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 26.10.2023

Просмотров: 22

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Язык функционального программирования «Haskell»

Haskell – чисто функциональный язык программирования, названный в честь Хаскелла Карри (Haskell B. Curry – 1900-1982), известного, главным образом, благодаря работам в области математической логики и комбинаторной логики в конце 1950-х – начале 1960-х годов

Haskell (hæskəl) — стандартизированный чистый функциональный язык программирования общего назначения. Является одним из самых распространённых языков программирования с поддержкой отложенных вычислений. Поскольку язык функциональный, то основная управляющая структура — это функция.

Отличительная черта языка — серьёзное отношение к типизации; во многом в этой связи язык назван в честь исследователя теории типов и изобретателя комбинаторной логики Хаскелла Карри.

Имеются средства взаимодействия с кодом на других языках программирования. Есть встроенная поддержка многозадачного и параллельного программирования, развитый инструментарий (средства автоматического тестирования, отладки и профилирования, в том числе для параллельных программ), существует несколько тысяч библиотек с открытым исходным кодом.

Немного из истории….

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

В 1990 г. была предложена первая версия языка «Haskell» 1.0.

В дальнейшем работа комитета продолжилось и в 1999 г был опубликован «The Haskell 98 Report», который стал стабильным стандартом языка на много лет.

Последняя версия языка – Haskell 2010 была объявлена в конце 2009 г, но последней «значительной» версией остается «Haskell 98»

Характеристики языка.

недопустимость побочных эффектов (чистота языка); возможность писать программы с побочными эффектами без нарушения парадигмы функционального программирования с помощью монад;
статическая сильная полная типизация с автоматическим выведением типов, основанная на типизации Хиндли — Милнера;
функции высшего порядка, в том числе лямбда-абстракции;
частичное применение;
ленивые вычисления (lazy evaluation);
сопоставление с образцом (англ. pattern matching), функциональные образцы, охраняющие выражения (guards);
параметрический полиморфизм и его объедение с ad hoc полиморфизмом в единую модель посредством классов типов;

алгебраические типы данных, в том числе псевдобесконечные (за счёт ленивости);
генераторы списков (list comprehensions);
возможность интеграции с программами, реализованными на императивных языках программирования посредством открытых интерфейсов (стандартное расширение языка Foreign Function Interface (англ.)


Типы данных и базовые конструкции языка Haskell

Элементарные типы данных

Знаки операций: +, -, *, <, ==

Integer, Int – целые значения

Float, Double – вещественные значения

Char – символьные значения

Bool – логические значения

Сферы применения Haskell

Финансовый сектор
Написание документов для обработки текста
Создание инструментов для тестирования кода на других языках программирования
Применяется для веб-разработки

Вопросы

В честь кого был назван язык программирования «Haskell»?


Деннис Ритчи
Кен Томпсон
Хаскелла Карри
Никлаус Вирт

Каким является языком программирования «Haskell» ?


Структурным
Логическим
Процедурным
Функциональным

В каком году была предложена первая версия языка «Haskell»?


1998
1990
1993
1995

Что является основой управляющей структурой языка?


Операторы
Выражения и операции
Функции процедуры

Какая версия является значительной версией «Haskell»?


«Haskell 93»
«Haskell 95»
«Haskell 98»
«Haskell 91»