Haskell

Haschisch

Im Haskell sind die Jungs in Klassen eingeteilt. Wie immer wird das erste Haskell-Programm das hello world Beispiel sein. Die Haskell-Funktionen haben keine Nebenwirkungen. Keine Nebenwirkungen ? Referenzielle Transparenz.

Bei Haskell benötigen Sie einen Compiler und einen Interpreter. Die Haskell gilt als eine schwer zu erlernende Sprache.

mw-headline" id="Entwicklung">Entwicklung[Bearbeiten | | | Quelltext bearbeiten]>

Entwickler:Simon Peyton Jones, Paul Hudak,[1]Philip Wadler, et al. Haskell ist eine reine Funktionsprogrammiersprache, die nach dem amerikanischen Mathematikern Haskell Brooks Curry genannt wird, dessen Arbeit an mathematischer Mathematik die Basis für funktionelle Programmierungssprachen bildet. Die Haskell beruht auf dem Lambda-Kalkül, weshalb auch der Name Lambda als Markenzeichen vorkommt. Der Glasgow Haskell Compiler (GHC) ist die bedeutendste Implementation.

Haskell 1. 0 wurde 1990 publiziert. Haskell 2010 ist die neueste Fassung der Sprache Haskells und bietet zahlreiche Derivate, darunter Parallel Haskell, Distributed Haskell (ehemals Goffin), eifrig Haskell, mit einem neuen Konzept zur Parallelprogrammierung und Bedarfsermittlung, DNA Haskell und auch objektorientierten Versionen (Haskell++, O'Haskell, Mondrian).

Haskell dient auch als Template für das Design von neuen Sprachen. Bei Haskell handelt es sich um eine reine Funktionsprogrammiersprache. Funktion gibt nur den Rückgabewert zurück, ändert aber nicht den Status eines Programmes (d.h. Funktion hat keine Nebenwirkungen). Mit Monads ist es möglich, Ein- und Ausgangsoperationen und statusspezifische Rechnungen wie z. B. zufällige Generatoren ausschließlich funktionell zu bearbeiten.

Er ist nicht streng. Eine Auswertestrategie, die die beiden oben beschriebenen Problemstellungen vermeidet, heißt faul und wird üblicherweise in Haskell verwendet. Andererseits erleichtert die Auswertung der Anforderungen die funktionelle Programmerstellung, da sie die Trennung von reinen Berechnungsfunktionen und Ein-/Ausgabefunktionen erleichtert. Mit der Bedarfsanalyse können Sie mit unbestimmten Größen und potenziell großen Mengen an Daten zurechtkommen.

Doch auch bei begrenzten, aber großen oder begrenzten und noch nicht vollstÃ??ndig gekannten Dateien ermöglicht diese AusfÃ? Beachten Sie jedoch, dass Haskell gemäß der Sprachendefinition nur nicht streng ist; die Anforderungsbewertung ist nur eine der möglichen Implementierungen von Nicht-Strenge (die jedoch von allen gebräuchlichen Haskell Übersetzern verwendet wird). Haskel ist kräftig getippt.

Beispielsweise wird strikt zwischen Wahrheitswert, Buchstaben, Ganzzahlen, Fließkommazahlen und Funktion von und zu unterschiedlichen Arten differenziert. Mit Haskell sind Typ-Variablen möglich. Dadurch lassen sich Funktionalitäten sehr allgemeingültig formulieren. Haskell ist von der Idee her fest vorgegeben, es gibt aber auch Extensions für Dynamik. Das Haskell System bietet Ihnen die Möglichkeit, übergeordnete Funktionalitäten zu nutzen.

Es handelt sich um eine Funktion, die als Eingangsparameter oder als Resultat eine Funktion hat. Funktion ermöglicht das Curren. Die Tupel werden als Argument an andere Sprachversionen übergeben, d.h. Funktionsarten der Formen (a, b) -> c, die Curryform a -> b -> c ist in Haskell häufiger.

Dies ermöglicht eine komfortable Teilauswertung von Funktionalitäten. Mit Haskell sind beliebige Datenarten möglich. Haskell unterstÃ?tzt Schriftklassen. Bei Funktionssignaturen können Sie auch Typenvariablen mit Einschränkungen auf gewisse Kategorien als Gradation zwischen fixen Arten wie z.B. Zeichen und Variablen vom Typ freier Typ verwenden. Irgendwie korrespondieren Typeklassen mit der Überlastung von Funktion.

Ein und derselbe Name steht also für unterschiedliche Funktionalitäten, je nach Art. Bei Haskell haben Ein- und Ausgangsfunktionen einen besonderen Typenkonstruktor namens IO. Dieses strikte Handling ermutigt die Haskell-Programmierer, Ein- und Ausgang und andere Teile eines Programmes klar zu trennen. Ein Haskell-Programm enthält in der Mehrzahl der Fälle eine Funktion ohne Ein- und Ausgängen.

Natürlich können Sie auch in andere Arten von IOs eingebettet werden und einen eigenen IO-Typ festlegen, der z.B. nur die Eingabe zulässt. Bei Haskell wird zwischen Groß- und Kleinschreibung unterschieden. Was? Kennungen, die mit einem kleinen Buchstaben anfangen, bedeuten Variablen, Funktion und Parametern. Ersteres von den Buchstaben -- bis zum Ende der Linie und letzteres bei der Aufnahme von {- und -}. hier wird ebenfalls ignoriert.

Das Haskell hat einige syntaktische Eigenheiten. Sie sollen nicht darüber hinweg täuschen, dass alles nur funktionell ist. In Haskell sind besondere Schreibweisen für die Listenbearbeitung möglich. Weiterhin ist eine Bezeichnung "Listenverständnis" zulässig, die auf der mathematischen Darstellung für Set-Definitionen basiert. Mit Haskell ist ein Mustervergleich möglich.

Haskell hat auch ein modulares System. Die Haskell 98 Norm legt einen Basissatz von Modulen[3] fest, die ein normgerechtes Haskell-System bereitstellen müssen. Zum Beispiel ein Baustein, der Ein- und Ausgabefunktionen bietet oder ein Baustein, der Listenfunktionen ausführt. Bei unterschiedlichen Bausteinen können Funktion und Typ den selben Dateinamen haben. Die von Haskell für die Notation von Verzeichnissen verwendete Funktion der Fakultät ist elegant definiert:

Die in Haskell::::::: Es gibt jetzt eine Anzahl von Haskell Implementierungen, von denen die meisten den Sprachenstandard nicht voll implementieren. Die Glasgow Haskell Compiler[4] (GHC) unterstützen Haskell 98 und viele Sprachen. Haskell-Programme werden in Maschinen-Code umgewandelt; für nicht unmittelbar unterstützende Betriebssysteme wird C-Code generiert, der dann mit einem C-Compiler umgesetzt wird.

ist ein Bytecode Compiler, der Haskell 98 nahezu komplett umsetzt sowie einige Extensions. Umarmungen selbst sind in C programmiert. nhc[6][7] (auch nhc98) ist ein anderer Bytecode Compiler, der Haskell 98 mit bestimmten Beschränkungen absichert. Die Yhc ist eine weitere Entwicklung von Nokia mit dem Zweck, die Portierbarkeit und Leistung der compilierten Software zu erhöhen.

Utrecht Haskell Compiler[8] (UHC) ist eine Experimentalimplementierung, die an der University of Utrecht entsteht. Dieser Kompilierer beruht auf Attribut-Grammatiken und setzt Haskell in B-Code um. Haskell 98 ist nahezu komplett realisiert, ebenso wie einige Anbauten. Helium [9] wird auch an der Uni Utrecht weiterentwickelt. Das Hauptaugenmerk des Projektes ist es, leicht zu verstehende Fehlernachrichten zu erstellen, um Einsteigern das Lernen von Haskell zu ermöglichen.

Deshalb ist ein begrenzter Haskell-Dialekt eingebaut, der unter anderem keine Typenklassen hat. Mit Ausnahme von Umarmungen sind sie alle in Haskell selbst umgesetzt. Aufgrund seines starken wissenschaftlichen Hintergrundes hat Haskell als Modell für viele Programmier- und Skriptsprachen für neue Sprachfunktionen gedient. Perl, Phyton, JavaScript, Java, Skala und PHP haben beispielsweise Haskells Vorstellungen für die funktionale Programmgestaltung aufgreift.

Dies beinhaltet übergeordnete Funktionalitäten wie Karte, Filtern, etc. Teilbereiche der generischen Programmgestaltung und mehr. Richard Bird: Einführung in die Funktionsweise der Software mit Haskell. Vorlesungssaal Europa, 1998, ISBN 0-13-484346-0 Marco Block, Adrian Neumann: Haskell Intensivkurs: Eine kompakte Einführung in die funktionelle Programmgestaltung. Springer, Heidelberg u. a. 2011, ISBN 978-3-642-04717-6, doi:10.1007/978-3-642-04718-3 Paul Hudak The Haskell L erneuert: Funktionelles Programmieren durch multimediale Anwendungen.

The Haskell University Press, Cambridge et al. 2000, ISBN 0-521-64338-4 (Englisch, neue Ausgabe: The Haskell schools of music (PDF; 2,4 MB), Ausgabe 2. 2, 2012). Ernesto-Erich Doberkat: Haskell - Eine Einleitung für den objektorientierten. Aufzeigen von Modularisierungsformen, die im Wesentlichen auf übergeordneten Funktionalitäten und Bedarfsermittlung basieren). Spiegel Lipova?a: Erlernen Sie ein Haskell für großes gutes!

Hier sind Bryan O'Sullivan, Don Stewart, John Goerzen: Echte Welt Haskell. Simone Peyton Jones (Hrsg.): Haskell 98 Sprache und Bibliotheken: Der überarbeitete Bericht. Simone Thompson: Haskell: Métier de la Programmierungsfunktion. Der Glasgow Haskell Compiler. Zurückgeholt am neunten. Jänner 2010. ? Niklas Rojemo: nhc - Fast ein Haskell-Compiler.

Chalmers Technischer Bericht, 1994. ? In Dijkstra, Jeroen Fokker, S. Doaitse Swierstra: Die Architektur des Haskell-Compilers aus Utrecht. Ein: In: Hatkell''09: ACM SIGPLAN sur Haskell. Die ACM, New York NY 2009, S. 93-104, doi:10.1145/1596638.1596650. ? Haskell: Haskell, Arjan van IJzendoorn, Haskell, Deutschland.

Ein: In: acm sigplan 2003 sur fen: Proceedings of the ACM SIGPLAN 2003 sur l'Haskell.

Mehr zum Thema