- Миранда (язык программирования)
-
Miranda — функциональный язык программирования, созданный в 1985 году Дэвидом Тёрнером в качестве стандартного функционального языка. Имеет строгую полиморфную систему типов, поддерживает типы данных пользователя. Как и язык ML, преподаётся во многих университетах. Функциональные объекты строятся с помощью карринга (частичного применения) существующих функций. Обладает ленивой семантикой. Программа представляет собой множество определений.
Преемник языков SASL и KRC, использующий некоторые концепции 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
Примечания
Ссылки
Основные языки программирования (сравнение • IDE • история • хронология) Используемые
в разработкеАда • APL • Язык ассемблера • ActionScript • ABAP/4 • AutoIt • AWK • Бейсик • Си • Кобол • C++ • C# • Cω • Clarion • Clojure • ColdFusion • Common Lisp • D • dBase • Delphi • Eiffel • Erlang • Euphoria • F# • Форт • Фортран • Gambas • Go • Groovy • HAL/S • Haskell • Icon • Java • JavaScript • Limbo • Lua • Модула-3 • Object Pascal • Objective-C • OCaml • Oz • Parser • Паскаль • Компонентный Паскаль • Perl • PHP • PowerBASIC • Python • ПЛ/1 • Пролог • Ruby • Scala • Scheme • Smalltalk • SQL • PL/SQL • Tcl • Vala • Visual Basic (.NET)
Академические IEC 61131-3 Instruction List • ST • FBD • Ladder Diagram (LD) • SFC
Прочие Эзотерические Визуальные Категории:- Языки программирования
- Функциональные языки программирования
- Функциональное программирование
Wikimedia Foundation. 2010.