Top-Fragen
Zeitleiste
Chat
Kontext

Clean (Programmiersprache)

Programmiersprache Aus Wikipedia, der freien Enzyklopädie

Remove ads

Clean ist eine funktionale Programmiersprache.

Schnelle Fakten Basisdaten ...
Remove ads

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.

Remove ads

Beispiele

 module hallo

 Start = "Hallo Welt!"

Fakultät (Mathematik):

 module fakultaet

 fak 0 = 1
 fak n = n * fak (n-1)

 // Berechne den Wert von 10 Fakultät
 Start = fak 10

Fibonacci-Folge:

 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

Infixnotation:

 (^) 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.

Quicksort

  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]
Remove ads
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads