Миранда (забони барноманависӣ)
Miránda — функциональный язык программирования, созданный в 1985 году Дэвидом Тёрнером в качестве стандартного функционального языка. Имеет строгую полиморфную систему типов, поддерживает типы данных пользователя. Как и язык ML преподаётся во многих университетах. Функциональные объекты строятся с помощью карринга (частичного применения) существующих функций. Обладает ленивой семантикой. Программа представляет из себя множество определений.
Преемник языков SASL и KRC, использующий некоторые концепции ML и Hope. Оказал большое влияние на разработчиков языка Haskell.
Пример кода
вироишОпределение функции 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;