Clean
Clean je v informatice univerzální čistě funkcionální programovací jazyk, který je silně ovlivněn jazykem Haskell. VlastnostiJazyk 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). 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ě (anglicky uniqueness type), že objekty jsou používány jedno-threadově (anglicky single-threaded). Příklady module hello
Start = "Hello, world!"
module factorial
fac 0 = 1
fac n = n * fac (n-1)
// find the factorial of 10
Start = fac 10
module fibonacci
fib 0 = 0
fib 1 = 1
fib n = fib (n - 2) + fib (n - 1)
Start = fib 7
(^) 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 Jak Clean pracujePostup 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. 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
Starší verze Cleanu byly psané zcela v C, čímž se předcházelo problémům při bootstrappingu. PlatformyClean 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. LicenceClean je distribuován ve dvou licencích: k dispozici je za podmínek GNU LGPL a také pod vlastnickou licencí. OdkazySouvisející článkyExterní odkazy |