Miranda (programovací jazyk)

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Miranda je v informatice čistě funkcionální programovací jazyk s líným vyhodnocováním, který navrhl David Turner jako nástupce jeho předchozích programovacích jazyků SASL a KRC, které využívají určitých konceptů jazyků ML a Hope. Obchodní značku Miranda vlastní Firma Research Software Ltd. of England. Miranda byl prvním čistě funkcionálním jazykem, který byl komerčně podporován.

Řešení většiny učebnicových problémů je v Mirandě kratší a jednodušší než ve většině tradičních programovacích jazyků (možná kromě APL). Uživatelé Mirandy mohou rychleji psát spolehlivější kódy, než s předchozími programovacími jazyky. +more Miranda byla vydána v roce 1985 jako rychlý interpret pro unixové operační systémy s následnými vydáními v letech 1987 a 1989. Haskell je pozdější nástupce Mirandy a v mnoha směrech se jí podobá.

Popis

Program (resp. skript) je v Mirandě množinou rovnic, které definují různé matematické funkce a algebraické datové typy. +more Slovo množina je zde důležité, protože v podstatě nezáleží na pořadí jednotlivých rovnic a není nutné definovat předcházející entitu k jejímu použití.

Komentáře se uvádějí za dvojicí znaků || a platí až do konce řádku. Alternativní konvencí pro komentáře pak forma, kde každý řádek je považován za komentář, kromě řádků začínajících znakem >.

Základní datové typy jsou char, num a bool. Znakový řetězec je prostý seznam znaků, zatímco num je podle potřeby převáděn mezi celými čísly (která jsou nastavena implicitně) nebo reálnými čísly s plovoucí desetinnou čárkou.

Dalším datovým typem jsou Tuples, což jsou sekvence elementů, které se mohou lišit datovým typem. Tuples odpovídají například datovému typu záznam v jazyce Pascal. +more Výčet elementů je uzavřen mezi kulatými závorkami a jednotlivé elementy jsou odděleny čárkami:.

this_employee = ("Folland, Mary", 10560, False, 35)

Nejvíce používanou datovou strukturou v Mirandě je však seznam. Výčet prvků je opět oddělen čárkami, je ale uzavřen mezi závorky hranaté a všechny prvky musí být stejného typu:

week_days = ["Mon","Tue","Wed","Thur","Fri"]

Pro výčet prvků seznamu také existuje několik zkratek, které ovšem můžeme použít jen v případě, že se jedná o aritmetickou řadu, s konkrétní inkrementací, která je větší než jedna:

fac n = product [1..n] odd_sum = sum [1,3..100]

Více důležitým a silným nástrojem pro tvorbu číselných seznamů jsou takzvané „list comprehensions“ (dříve známé jako „ZF expressions“), které jsou tvořený dvěma základními parametry: výrazem a prvky pro které daný výraz platí:

squares = [ n * n | n

Ukázka

Následující kód určuje soubor všech podmnožin z množiny celých čísel:

subsets [] = [[]] subsets (x:xs) = [[x] ++ y | y

Toto je pak ukázka výše zmíněného literate scriptu obsahující funkci primes, která vrací seznam všech prvočísel. V takzvaném „literate script“ jsou všechny řádky, které nezačínají znakem > považovány za komentáře:

> || The infinite list of all prime numbers, by the sieve of Eratosthenes.

The list of potential prime numbers starts as all integers from 2 onwards; as each prime is returned, all the following numbers that can exactly be divided by it are filtered out of the list of candidates.

> primes = sieve [2..] > sieve (p:x) = p : sieve [n | n

Reference

Externí odkazy

[url=http://miranda.org.uk]Domovská stránka Mirandy[/url]

Kategorie:Programovací jazyky Kategorie:Funkcionální jazyky Kategorie:Deklarativní programovací jazyky

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top