Tüübiklassidega funktsionaalprogrammeerimine Scalas

Date

2017

Journal Title

Journal ISSN

Volume Title

Publisher

Abstract

Scala on Java virtuaalmasinat kasutav mitme-paradigma programmeerimiskeel,mis võimaldab omavahel kombineerida objektorienteeritud ja funktsionaalseid tehnikaid. Scala kui funktsionaalse keele miinuseks on, et selle standardteegist puuduvad funktsionaalprogrammeerijale harjumuspärased abstraktsioonid– tüübiklassid, millega saab kirjeldada erinevate tüüpide ühiseid omadusi,ilma et need peaksid pärinema samast ülemklassist. Selle puudujäägi kõrvaldamiseks on Scala jaoks loodud neid abstraktsioone sisaldav teek nimega Cats. Antud bakalaureusetöös uuriti, kuidas on viis Haskellist tuntud tüübiklassi Catsis realiseeritud ning milliste probleemide lahendamist need lihtsustavad. Selle tulemusena valminud töö kirjalik osa kujutab endast sissejuhatavat materjali tüübiklassidega funktsionaalprogrammeerimisest Scalas. Seda täiendavad harjutusülesanded ja näidisprogramm.
Scala is a multi-paradigm programming language running on a Javavirtual machine which allows to combine object-oriented and functional techniques. The disadvantage of Scala as a functional programming language is that its standard library is missing some useful abstractions – type classes which can be used to describe common properties of different types without the need to inherit them from the same superclass. To eliminate that disadvantage, a library named Cats containing those abstractions was created. The aim of this thesis is to research that library – study the implementations of five type classes that are already known from Haskell and describe the kind of problems they help to solve in Scala.The written part of this thesis provides an introduction to functional programming with type classes in Scala. In addition, practical exercises and an example program were written to complement the written part.

Description

Keywords

Citation