Funktionsdeklarationen | |
---|---|
Das um und auf in einer funktionalen Programmiersprache sind natürlich die Funktionen. Wärend in stackbasierten Programmiersprachen, wie beispielsweise forth, eher der Stackeffekt beschrieben wird: : && ( b b -- b&&b ) (heißt: es werden zwei Werte am Stack erwartet, der logisch Verknüpfte Wert steht nach Ausführung am Stack) beschreibt Haskell, als funktionale Programmiersprache, in ihrer Signatur den Zusammenhang der Funktionsparameter: && :: Bool -> Bool -> Bool Heißt: && (die übliche Schreibweise für ein logisches Und) behandelt drei Werte. Diese sind einfach der Reihe nach anzugeben, der Letzte ist dann das Ergebnis. In einer üblichen imperativen Sprache, beispielsweise C, würde das ganze so aussehen: boolean and(boolean a, boolean b); Doch Haskell ermöglicht auch noch, bei der Funktionsdeklaration beispielsweise Tupel zu definieren: && :: ( Bool -> Bool ) -> Bool Das entspricht in etwa einem explizit aufgelöstem struct in C und lässt sich in anderen Paradigmen nicht unmittelbar abbilden. |
Funktionsnotationen | |
---|---|
Haskell unterstützt mehrere verschiedene Schreibweisen, der Vorteil der "wenigen Grundkonzepte" relativiert sich damit noch mehr. Prinzipiell kann man beispielsweise die Fakultätsfunktion (1 mal 2 mal 3 mal ... mal n) folgenderweise implementieren: Lambda-Artig fact :: Integer -> Integer fact = \n -> (if n == 1 then 1 else (n * fact (n - 1))) Gleichungsorientiert fact :: Integer -> Integer fact n = if n == 1 then 1 else (n * fact (n - 1)) als bedingte Gleichung fact :: Integer -> Integer fact n n == 1  = 1 otherwise = n * fact (n - 1) davon abgesehen gibt es noch viele weitere Schreibweisen. Wichtige Konzepte sind zB Listcomprehension, Wildcards und lokale Deklarationen. |
AdministrativeTexts
updated by freddiemac1993, 2013-06-14
wiki
Re: adventures
created by brittdavis10, 2012-02-23 (1 rply, 3 views)
thread
Re: how to run phpwebsite...
created by alexander, 2011-08-25 (2 rpls, 3607 views)
thread
Re: Forum tags
created by HaroldFaragher, 2011-08-22 (3 rpls, 8488 views)
thread