Einleitung


[Seminar "Einführung in Haskell"] - [Inhalt] - [ zurück ] - [weiter]

Übersicht


Vorwort:

In dieser Arbeit werden wichtige Konzepte der funktionalen Programmierung mit Haskell vorgestellt, u.a. rekursive Datentypen, deren Definitionen und der "Beweis" durch Induktion. Grob gesagt, geht es um verschiedene Zahlenmengen und die dazugehörigen Operationen.
In den vorangegangenen Vorträgen wurden bereits drei verschiedene Typen (Integer, Int und Float) zur Darstellung von Zahlen vorgestellt. Nun ist es wünschenswert, weitere Typen zur Verfügung zu haben, um z.B. rationale oder komplexe Zahlen darstellen und verarbeiten zu können.
Die Formeln für die unterschiedlichen arithmetischen Funktionen differieren stark. Daher ist es schwer, eine Division von Integern mit einer Real-Division zu vergleichen. Ebenso ist es nicht möglich, auf komplexe Zahlen Vergleichsoperatoren anzuwenden. Haskell bietet eine grosse Auswahl an verschiedenen Typklassen zur Beschreibung von Zahlen, von denen einige vorgestellt werden (Num, Real, Integral und Fractional). Obwohl in anderen Programmiersprachen manche Datentypen als primitiv dargestellt sind, erhalten sie hier passende Deklarationen. Dabei geht es primär um die dahinterstehenden Konzepte und nicht um die Deklarationen an sich.
Es werden Beispiele gegeben und eine mächtige Funktionsvariante (Fold) wird vorgestellt, welche die Arbeit vereinfacht und für Effizienz sorgt. Viele Grundlagen (Datentypen, Klassen, Instanzen...) wurden bereits in den vorangegangenen Vorträgen behandelt und somit wird das Wissen hier zum Teil vorausgesetzt.

Hinweise:

Diese Ausarbeitung hat laut Aufgabenstellung als Grundlage explizit das dritte Kapitel des Buches "Introduction to Functional Programming using Haskell" von Richard Bird [1]. Deshalb wird im Weiteren absichtlich auf korrekte Fussnoten verzichtet, die sich auf diesen Autoren beziehen, um die Übersichtlichkeit zu bewahren. Auch orientiert sich der Inhalt und somit der Aufbau stark an dem vorgegebenen Kapitel.
Die Ausarbeitung beruht auf Haskell 1.3. Als Interpreter für die Beispiele wurde HUGS98 (Haskell Users Gofer System) gewählt. Er wurde von Mark Jones an der Universität Nottingham entwickelt und basiert auf dem Haskell-98-Standard. Für verschiedene Betriebssysteme ist er kostenlos auf der offiziellen Seite zum Thema Haskell unter http://cvs.haskell.org/Hugs/pages/downloading.htm zu beziehen. Auf diesen Seiten sind ebenso Tutorials für die Bedienung von Hugs zu finden. Lohnenswert, ist auf jeden Fall ein Besuch der Seite http://www.haskell.org für viele weitere Informationen zum Thema Haskell.


[Seminar "Einführung in Haskell"] - [Inhalt] - [ zurück ] - [weiter] - [nach oben]