• Keine Ergebnisse gefunden

ErsteSchrittemitHaskell Abgabe: 2019-10-17 Ausgabe: 2019-10-15 1.Übungsblatt

N/A
N/A
Protected

Academic year: 2022

Aktie "ErsteSchrittemitHaskell Abgabe: 2019-10-17 Ausgabe: 2019-10-15 1.Übungsblatt"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Till Mossakowski Stephan Günther Funktionale Programmierung - Fortgeschrittene Konzepte und Anwendungen

WS 2019/20

1. Übungsblatt

Ausgabe: 2019-10-15 Abgabe: 2019-10-17

Dieses Übungsblatt dient zum Warmwerden mit Haskell. Nutzen Sie es dazu, sich mit der Benutzung der Sprache (Syntax, Interpreter/Compiler, Fehlermeldungen etc.) vertraut zu machen.

Erste Schritte mit Haskell

Befolgen Sie die folgenden Schritte, um eine lauffähige Haskell-Umgebung auf Ihrem System einzurichten und die Übungsaufgabe lösen zu können.

1. Installieren Sie dieHaskellauf eine der unterhttps://www.haskell.org/downloads/vorgestellten Varianten.

Am Ende des Prozesses sollten Sie auf der Kommandozeile ihres Systems die Kommandosghc --versionund ghciausführen können ohne eine Fehlermeldung zu erhalten.

2. Erstellen Sie ein Verzeichnis, in dem Sie die übungsrelevanten Dateien ablegen.

3. Erstellen Sie mit einem Editor Ihrer Wahl eine DateiAufgabe00.hsim erzeugten Verzeichnis.

4. Fügen Sie folgenden Code (aus der Vorlesung) ein:

fac :: I n t → I n t

fac n= i f n≤0 then 1 else n ∗ fac (n− 1) Fügen Sie später ggf. weitere Definitionen hinzu.

5. Starten Sie eine Kommandozeile/Terminal/Konsole (cmd.exeunter Windows,basho.ä. unter Linux), und wech- seln Sie ggf. in das erzeugte Verzeichnis.

6. Starten Sie den Haskell-Interpreterghci.

7. Laden Sie Ihre TestdateiAufgabe00.hsin den Interpreter::load Aufgabe00bzw. kürzer:l Aufgabe00.

8. Der Interpreter erlaubt Ihnen, die in der geladenen Datei definierten Funktionen und Variablen auszuwerten. Geben Sie hierzu entsprechende Haskell-Ausdrücke auf der Kommandozeile des Interpreters ein. Beispiele:

17 +4 100 / 7 sqrt 100−1

(−1) ∗ (−1) fac 10 fac (−3)

fac " k o l i b r i " fac 9−20 foo 10

Beachten Sie auch die hilfreichen (teilweise noch unverständlichen) Fehlermeldungen bei fehlerhaften Ausdrücken.

9. Hilfe bekommen Sie durch Eingabe von:help. Die meisten Optionen sind anfangs noch nicht relevant; als hilfreich werden sich aber die Kommandos:reload(Abk.::r),:type(:t) und:browseerweisen.

Ein üblicher Entwicklungszyklus sieht dann so aus: editieren und speichern im Editor, (neu) laden im Interpreter (:lbzw.:r), Fehlermeldungen analysieren bzw. Testeingaben machen, zurück zum Editor.

10. Nachdem Sie sich mit ghci vertraut gemacht haben können Sie optional die oben gestellten aufgaben auch in IHaskel (https://github.com/gibiansky/IHaskell), einem Haskell Kernel für Jupyter (https://jupyter.

org/) Notebooks ausprobieren. Da sich die Installation dieser Software unter Umständen etwas schwieriger gestal- tet, finden Sie unterhttps://mybinder.org/v2/gh/gibiansky/IHaskell/masterauch eine Onlineversion.

— Seite 1 von 2 —

(2)

1. Übungsblatt

Funktionale Programmierung - Fortgeschrittene Konzepte und Anwendungen WS 2019/20 , So gewappnet können Sie jetzt die folgende Aufgabe angehen (am besten gemeinsam im Tutorium):

1.1 Summ, summ, summ.

1. Implementieren Sie eine Funktionsumme, welcherekursivdie Summe aller Zahlen von 1 bisnberechnet:

summe(n) =

n i=1

i

Welche Signatur muss diese Funktion haben?

2. Speichern Sie Ihre Definition in der DateiAufgabe01.hs(oder einem beliebigen anderen Namen) und laden Sie die Datei.

3. Überlegen Sie sich Testfälle (Testwerte) für Ihre Implementation, und führen Sie diese aus, indem Sie die Auswer- tung auf der Kommandozeile wie in denErsten Schrittenbeschrieben nutzen.

— Seite 2 von 2 —

Referenzen

ÄHNLICHE DOKUMENTE

Jetzt laden Sie den Testtreiber (ghci Test.hs) und lassen mit run die Tests laufen1. Implementieren Sie die Funktion summe so, dass alle Tests

d) (6 Punkte) Stellen Sie nun sicher, dass nur ein autorisierter Nutzer neue Bilder hinzufügen kann (Die Definition von ’autorisiert’ ist Ihnen selbst überlassen, Sie

Über einem Schreibtisch hängt eine kleine kugelförmige Lampe mit Reflektor, die ihren gesamten Lichtstrom

1 BauGB werden eine beachtli- che Verletzung von Verfahrens- und Formvorschrif- ten, eine beachtliche Verletzung der Vorschriften über das Verhältnis des Bebauungsplans und des

Welche Folgen hat es für Wettbewerbsfähigkeit und Rentabilität der Unternehmen, wenn sie überschätzt - und welche, wenn sie unterschätzt wird. Aufgabe 4:

Canakinumab Jederzeit möglich, bei laufender Therapie in der Mitte des Behandlungsintervalls, idealerweise mindestens zwei, besser vier Wochen vor Therapiebeginn abschließen..

Die Vorlage für die visuelle Darstellung in der Werbung sowie die Eingabemaske für die Erstellung der Energieetikette 2020 werden nach Erlass der VEE-PW unter folgendem Link

FÄ/FA Anästhesie für Vertretungen einmal pro Woche in Deggendorf oder Landshut gesucht, auch Anstellung in Teilzeit möglich. anaesthesie- Große