Voor de oefeningenlessen en projecten van deze cursus moet je zelf Haskell code en projecten kunnen compileren en uitvoeren. Deze tekst omschrijft de benodigde software en hoe je deze kan installeren. Alle software zou moeten werken op GNU/Linux, *BSD, macOS en Windows. Hoewel stack zou moeten werken op WSL 2, is het toch aangeraden om gebruik te maken van een Ubuntu virtuele machine.

We gebruiken:

Git en SubGIT

Normaal hebben jullie al met git leren werken in eerdere vakken. Voor dit vak gebruiken we git (via SubGIT) voor het verdelen van de oplossingen van oefeningen en het indienen van jullie projecten.

Installatieprocedures voor Git vind je op Git SCM1, maar voel je vrij om gewoon de package manager van je besturingssysteem te gebruiken. Op Windows raad ik het gebruik van Git BASH2 of WSL 23 aan. Instructies voor het gebruik van SubGIT vind je op subgit.ugent.be4.

Haskell Stack

De installatieprocedure voor Haskell Stack5 is terug te vinden op hun website, maar voel je vrij om gewoon de package manager van je besturingssysteem te gebruiken. Stack zal voor jou (verschillende) Haskellversies installeren, de dependencies van projecten downloaden, alles compileren, en uitvoeren.

Stack zal je dus helpen om “reproducable builds” te krijgen. In de praktijk betekent dit dat een project dat op jouw computer compileert, dat ook bij mij zal doen - handig dus.

Je kan je installatie controleren via stack --version. Je kan ook altijd eens controleren of je een project kan opzetten (stack new), en compileren (stack build). Met het commando stack ghci kan je een Haskell REPL (read-evaluate-print-loop) opzetten.

Editor

Om Haskell te programmeren heb je niet meer nodig dan een tekstverwerker. Zelf gebruik ik VSCode6 (Visual Studio Code), maar je bent hier volledig vrij in.

Het is ook mogelijk om IDE’s te gebruiken. Integratie met stack ligt echter niet altijd voor de hand en ikzelf kan weinig ondersteuning geven omdat ik die dingen niet gebruik. Voor Visual Studio Code is er een Dodonaplugin7 voorzien.

Zorg dat je HLint8 kan uitvoeren op je code, zeker op je projecten.

Communicatie

Ik ga niet uitleggen hoe je emails moet sturen.

Stuur me gerust veel emails met vragen over de oefeningen of projecten. Bij vragen over code zet je die best in bijlage (als tekstbestand, geen screenshots, of je linkt naar Dodona of pusht naar SubGIT) zodat ik ze kan zien en aanpassen.