Clean

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Clean je v informatice univerzální čistě funkcionální programovací jazyk, který je silně ovlivněn jazykem Haskell.

Vlastnosti

Jazyk Clean je silně ovlivněn jazykem Haskell. Má s ním proto společné vlastnosti: referenční transparentnost, generátorovou notaci seznamů (list comprehension), stráže (guards), garbage collector, funkce vyšších řádů, currying a líné vyhodnocování (lazy evaluation). +more Součástí distribuce Cleanu je i vývojové prostředí.

Clean má pro změny stavů a I/O operace alternativu k monádám jazyka Haskell ve formě , že objekty jsou používány jedno-threadově .

Příklady

Hello world:

module hello Start = "Hello, world!"

Faktoriál:

module factorial fac 0 = 1 fac n = n * fac (n-1)

// find the factorial of 10 Start = fac 10

Fibonacciho posloupnost:

module fibonacci fib 0 = 0 fib 1 = 1 fib n = fib (n - 2) + fib (n - 1) Start = fib 7

Infixová notace:

(^) infixr 8 :: Int Int -> Int (^) x 0 = 1 (^) x n = x * x ^ (n-1)

Tento typ deklarace udává, že se jedná o asociativní infixovou notaci s prioritou 8: důsledkem toho je, že x*x^(n-1) je rovnocenný s x*(x^(n-1)) a v protikladu k (x*x)^(n-1); tato notace je ve standardním prostředí Cleanu předdeklarovaná.

Jak Clean pracuje

Postup je založen na přepisování grafů (graph rewriting) a redukci. Konstanty, jako například číselné grafy a funkční grafy přepisují vzorce. +more To v kombinaci s kompilací do nativního kódu dělá programy psané v Clean poměrně rychlé, a to i s vysokou abstrakcí.

Kompilace

# Zdrojové soubory (. icl) a projektové soubory (. +moredcl) jsou převedeny do Clean platformy nezávislého byte kódu (. abc), implementovaného v jazyce C a Clean. # Byte kód (bytecode) je převedený do strojového kódu (. obj) pomocí C. # V Cleanu je strojový kód spojen s dalšími soubory v modulu a za běhu převeden do běžně spustitelné formy. Starší verze Cleanu byly psané zcela v C, čímž se předcházelo problémům při bootstrappingu.

Platformy

Clean je k dispozici pro Microsoft Windows. S omezenými vstupně/výstupními schopnostmi a bez funkce „Dynamics“ je také dostupný pro Apple, Solaris a Linux.

Licence

Clean je distribuován ve dvou licencích: k dispozici je za podmínek GNU LGPL a také pod vlastnickou licencí.

Odkazy

Související články

Haskell

Externí odkazy

[url=http://clean. cs. +moreru. nl/]Clean-domácí stránka[/url] ** [url=https://web. archive. org/web/20090130032322/http://clean. cs. ru. nl/contents/contents. html]Clean jazykové zprávy[/url] ** [url=https://web. archive. org/web/20090130024333/http://clean. cs. ru. nl/contents/Clean_Book/clean_book. html]úvodní učebnice Clean[/url] * [url=https://web. archive. org/web/20051130011042/http://foldoc. doc. ic. ac. uk/foldoc/foldoc. cgi]Čistěte čistý ve FOLDOC[/url] * [url=https://web. archive. org/web/20090217190534/http://shootout. alioth. debian. org/u32q/clean. php]Clean ve strojovém jazyce Benchmarks Game[/url] * [url=https://web. archive. org/web/20071204025636/http://www. nabble. com/Why-can%27t-Haskell-be-faster--tf4723820. html]Clean vs. Haskell[/url] * [url=http://wiki. clean. cs. ru. nl/FAQ]Clean FAQ[/url] * [url=http://www. haskell. org]Domovská stránka Haskellu[/url] * [url=http://haskell. cz/]Haskell. cz[/url] O Haskellu v češtině * [url=http://www. root. cz/serialy/haskell-a-funkcionalni-programovani/]Seriál Haskell a funkcionální programování[/url].

Kategorie:Programovací jazyky Kategorie:Funkcionální 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