ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 26.10.2023
Просмотров: 85
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Язык функционального программирования «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 Финансовый сектор Написание документов для обработки текста Создание инструментов для тестирования кода на других языках программирования Применяется для веб-разработки
алгебраические типы данных, в том числе псевдобесконечные (за счёт ленивости); генераторы списков (list comprehensions); возможность интеграции с программами, реализованными на императивных языках программирования посредством открытых интерфейсов (стандартное расширение языка Foreign Function Interface (англ.)Типы данных и базовые конструкции языка HaskellЭлементарные типы данныхЗнаки операций: +, -, *, <, == Integer, Int – целые значения Float, Double – вещественные значения Char – символьные значения Bool – логические значения Сферы применения Haskell Финансовый сектор Написание документов для обработки текста Создание инструментов для тестирования кода на других языках программирования Применяется для веб-разработки