Remove ads
Programmiersprache Aus Wikipedia, der freien Enzyklopädie
Clean ist eine funktionale Programmiersprache.
Clean | |
---|---|
Paradigmen: | funktional, nicht-strikt, modular, deklarativ |
Erscheinungsjahr: | 1987 |
Aktuelle Version: | 3.1 (20. Dezember 2021) |
Beeinflusst von: | Haskell |
Betriebssystem: | Windows, Linux, Mac OS X, Solaris etc. |
Lizenz: | LGPL, kommerziell |
https://clean.cs.ru.nl/Clean |
Clean zeichnet sich durch referenzielle Transparenz aus, was bedeutet, dass das Ergebnis eines Funktionsaufrufes nur von den Eingabeparametern abhängt. Bei gleichen Eingabeparametern erhält man also auch immer das gleiche Ergebnis.
Clean hat ähnliche Eigenschaften wie die Programmiersprache Haskell. Auffälligster Unterschied ist die Verwendung von uniqueness typing für die Ein- und Ausgabe anstelle einer Monade.
module hallo
Start = "Hallo Welt!"
module fakultaet
fak 0 = 1
fak n = n * fak (n-1)
// Berechne den Wert von 10 Fakultät
Start = fak 10
module fibonacci
fib 0 = 0
fib 1 = 1
fib n = fib (n - 2) + fib (n - 1)
// Berechne den Wert der siebten Fibonacci-Zahl
Start = fib 7
(^) infixr 8 :: Int Int -> Int
(^) x 0 = 1
(^) x n = x * x ^ (n-1)
Die gegebene Typdeklaration definiert die Funktion (^)
als rechtsassoziativen Infixoperator mit Priorität 8. Dies bedeutet, dass x*x^(n-1)
äquivalent ist zu x*(x^(n-1))
ist, und nicht zu (x*x)^(n-1)
. Der (^)
-Operator ist in der Clean-Standard-Umgebung vordefiniert.
module sort
qsort :: [a] -> [a] | Ord a
qsort [] = []
qsort [a:xs] = qsort [x \\ x <- xs | x < a] ++ [a] ++ qsort [x \\ x <-xs | x >= a]
// sortiere Liste
Start = qsort [5,4,3,2,1]
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.