Det här repositoriet innehåller min lösning för den första laborationen i kursen Funktionell Programmering, där vi arbetade med representation och manipulation av komplexa tal. Laborationen syftade till att ge träning i att stegvis utveckla ett program i Haskell, bestående av en mängd funktioner för att hantera komplexa tal i både rektangulär och polär form.
Laborationen bestod av flera uppgifter som byggde på varandra:
- Skapa Komplexa Tal: Implementera funktioner för att skapa komplexa tal i både rektangulär och polär form.
- Hämta Data från Komplexa Tal: Utveckla funktioner för att extrahera realdel, imaginärdel, avstånd från origo och vinkeln från komplexa tal.
- Konvertering: Skriv funktioner för att konvertera komplexa tal mellan rektangulär och polär form.
- Räkneoperationer: Implementera grundläggande räkneoperationer för komplexa tal (addition, subtraktion, multiplikation, division).
- Listhantering och Filtrering: Skapa funktioner för att generera listor av komplexa tal och filtrera dem baserat på olika kriterier.
- Programspråk: Haskell
- Datarepresentation: Komplexa tal representerades som en trippel bestående av en sträng och två flyttal. Strängen angav om talet var i rektangulär (”R”) eller polär (”P”) form.
- Funktionell Design: Fokus på att skriva små, tydliga funktioner och använda mönstermatchning och listbyggare i Haskell.
- Korrekt användning av Haskell:s funktioner och datatyper.
- Kod måste vara välorganiserad och följa funktionell programmeringsstil.
- Adekvat dokumentation och namngivning enligt kursens standarder.
- Programmet måste kompilera och köra korrekt i en Haskell-miljö.
Uppgiften bedömdes som godkänd eller underkänd baserat på korrekt implementering och dokumentation av de krävda funktionerna.