Миранда (язык программирования) (Bnjgu;g (x[dt hjkijgbbnjkfgunx))
Miranda — функциональный язык программирования, созданный в 1985 году Дэвидом Тёрнером в качестве стандартного функционального языка.
Miranda | |
---|---|
Класс языка | язык программирования, чистый функциональный язык программирования[вд], декларативный язык программирования и язык, использующий отступы[вд] |
Появился в | 1985 |
Автор | Дэвид Тёрнер |
Выпуск | |
Система типов | строгая, полиморфизм |
Испытал влияние | ML и KRC |
Повлиял на | Haskell |
Лицензия | 2-пунктная лицензия BSD[вд][2] |
Сайт | cs.kent.ac.uk/peo… (англ.) |
Имеет строгую полиморфную систему типов, поддерживает типы данных пользователя. Как и язык ML, преподаётся во многих университетах. Функциональные объекты строятся с помощью карринга (частичного применения) существующих функций. Обладает ленивой семантикой. Программа представляет собой множество определений.
Преемник языков SASL и Kent Recursive Calculator, использующий некоторые концепции ML и Hope. Оказал большое влияние на разработчиков языка Haskell.
Название языка происходит от имени героини пьесы «Буря» Уильяма Шекспира, Миранды. В ней она произносит фразу «О дивный новый мир!», что, по словам создателей, должно принести «дивный новый мир в функциональное программирование»[3]. Также героиня изображена на логотипе языка.
Пример кода
[править | править код]Определение функции 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.
Примечания
[править | править код]- ↑ Miranda download page
- ↑ miranda: COPYING
- ↑ About the name Miranda Архивная копия от 4 апреля 2016 на Wayback Machine.
Ссылки
[править | править код]Это заготовка статьи о компьютерных языках. Помогите Википедии, дополнив её. |