WikiSort.ru - Программирование

ПОИСК ПО САЙТУ | о проекте

Miranda — функциональный язык программирования, созданный в 1985 году Дэвидом Тёрнером в качестве стандартного функционального языка. Имеет строгую полиморфную систему типов, поддерживает типы данных пользователя. Как и язык ML, преподаётся во многих университетах. Функциональные объекты строятся с помощью карринга (частичного применения) существующих функций. Обладает ленивой семантикой. Программа представляет собой множество определений.

Преемник языков SASL и Kent Recursive Calculator, использующий некоторые концепции ML и Hope. Оказал большое влияние на разработчиков языка Haskell.

Название языка происходит от имени героини пьесы «Буря» Уильяма Шекспира, Миранды. В ней она произносит фразу «О дивный новый мир!», что, по словам создателей, должно принести «дивный новый мир в функциональное программирование»[1]. Также героиня изображена на логотипе языка.

Пример кода

Определение функции map и её последующее применение к функции, увеличивающей аргумент на два:

 map f[] = []
 map f(x:s) = (f x):(map f s)
 L = [1..6]
 map((+)2) L
  [3, 4, 5, 6, 7, 8]

Двоеточие определяет голову (первый элемент) и хвост (последующие элементы) списка как при его композиции, так и при сопоставлении с образцом. Функция для увеличения аргумента на 2 получена частичным применением примитивной функции + к аргументу 2. Запись [1..6] — укороченная запись [1, 2, 3, 4, 5, 6].

Пример списочного выражения:

 [ n+2 | n <- [1..6] ]
  [3, 4, 5, 6, 7, 8]

Литература

  • Филд А., Харрисон П. Функциональное программирование. М.: Мир, 1993. — 637 с. ISBN 5-03-001870-0.

Примечания

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии