Show simple item record

Comonads (not only) for programmers
dc.contributor.advisorHric, Jan
dc.creatorŠefl, Vít
dc.date.accessioned2017-05-26T15:25:28Z
dc.date.available2017-05-26T15:25:28Z
dc.date.issued2014
dc.identifier.urihttp://hdl.handle.net/20.500.11956/63761
dc.description.abstractMonády (a jejich kategorický duál - komonády) jsou důležitým konceptem teorie kategorií a zatímco monády jsou velmi oblíbenými nástroji ve funkcionálních jazycích (hlavně díky jazyku Haskell), komonády se příliš nepoužívají. V této práci prezentujeme definici komonád vhodnou pro potřeby funkcionálního programování a dále uvádíme příklady jejich praktického použití. Jedním z důležitějších příkladů je zipper - struktura, která reprezentuje určitou pozici. Ukážeme, že zipper lze automaticky odvodit pro každý regulární typ a také že tato operace připomíná derivaci z matematické analýzy. Kromě toho také uvádíme několik řešených příkladů v jazyce Haskell, které ilustrují, jak lze komonády použít pro řešení různých problémů. Všechny důkazy v teoretické části jsou provedeny v jazyce Agda a jsou zkontrolovány počítačem. Powered by TCPDF (www.tcpdf.org)cs_CZ
dc.description.abstractMonads (and their categorical dual - comonads) are important concepts in category theory and while monads enjoy their popularity in functional languages (mainly due to the programming language Haskell), comonads are often forgotten. In this work we present a definition of comonads suitable for programming and give examples of their use. One of the more important examples is zipper - a structure used to represent position. We show that zipper can be automatically derived for any regular type and show that this operation is very reminiscent of derivative from mathematical analysis. We also show worked examples of various problems that comonads can help solve in the language Haskell. All relevant proofs for the theoretical part of this work are machine checked in the language Agda. Powered by TCPDF (www.tcpdf.org)en_US
dc.languageČeštinacs_CZ
dc.language.isocs_CZ
dc.publisherUniverzita Karlova, Matematicko-fyzikální fakultacs_CZ
dc.subjectHaskell Agda komonáda zipper derivacecs_CZ
dc.subjectHaskell Agda comonad zipper derivativeen_US
dc.titleKomonády (nejen) pro programátorycs_CZ
dc.typebakalářská prácecs_CZ
dcterms.created2014
dcterms.dateAccepted2014-09-04
dc.description.departmentDepartment of Theoretical Computer Science and Mathematical Logicen_US
dc.description.departmentKatedra teoretické informatiky a matematické logikycs_CZ
dc.description.facultyMatematicko-fyzikální fakultacs_CZ
dc.description.facultyFaculty of Mathematics and Physicsen_US
dc.identifier.repId143936
dc.title.translatedComonads (not only) for programmersen_US
dc.contributor.refereePultr, Aleš
dc.identifier.aleph001847884
thesis.degree.nameBc.
thesis.degree.levelbakalářskécs_CZ
thesis.degree.disciplineProgramovánícs_CZ
thesis.degree.disciplineProgrammingen_US
thesis.degree.programInformatikacs_CZ
thesis.degree.programComputer Scienceen_US
uk.faculty-name.csMatematicko-fyzikální fakultacs_CZ
uk.faculty-name.enFaculty of Mathematics and Physicsen_US
uk.faculty-abbr.csMFFcs_CZ
uk.degree-discipline.csProgramovánícs_CZ
uk.degree-discipline.enProgrammingen_US
uk.degree-program.csInformatikacs_CZ
uk.degree-program.enComputer Scienceen_US
thesis.grade.csVýborněcs_CZ
thesis.grade.enExcellenten_US
uk.abstract.csMonády (a jejich kategorický duál - komonády) jsou důležitým konceptem teorie kategorií a zatímco monády jsou velmi oblíbenými nástroji ve funkcionálních jazycích (hlavně díky jazyku Haskell), komonády se příliš nepoužívají. V této práci prezentujeme definici komonád vhodnou pro potřeby funkcionálního programování a dále uvádíme příklady jejich praktického použití. Jedním z důležitějších příkladů je zipper - struktura, která reprezentuje určitou pozici. Ukážeme, že zipper lze automaticky odvodit pro každý regulární typ a také že tato operace připomíná derivaci z matematické analýzy. Kromě toho také uvádíme několik řešených příkladů v jazyce Haskell, které ilustrují, jak lze komonády použít pro řešení různých problémů. Všechny důkazy v teoretické části jsou provedeny v jazyce Agda a jsou zkontrolovány počítačem. Powered by TCPDF (www.tcpdf.org)cs_CZ
uk.abstract.enMonads (and their categorical dual - comonads) are important concepts in category theory and while monads enjoy their popularity in functional languages (mainly due to the programming language Haskell), comonads are often forgotten. In this work we present a definition of comonads suitable for programming and give examples of their use. One of the more important examples is zipper - a structure used to represent position. We show that zipper can be automatically derived for any regular type and show that this operation is very reminiscent of derivative from mathematical analysis. We also show worked examples of various problems that comonads can help solve in the language Haskell. All relevant proofs for the theoretical part of this work are machine checked in the language Agda. Powered by TCPDF (www.tcpdf.org)en_US
uk.file-availabilityV
uk.publication-placePrahacs_CZ
uk.grantorUniverzita Karlova, Matematicko-fyzikální fakulta, Katedra teoretické informatiky a matematické logikycs_CZ


Files in this item

Thumbnail
Thumbnail
Thumbnail
Thumbnail
Thumbnail
Thumbnail
Thumbnail

This item appears in the following Collection(s)

Show simple item record


© 2017 Univerzita Karlova, Ústřední knihovna, Ovocný trh 3-5, 116 36 Praha; email: dspace (at) is.cuni.cz

Za dodržení všech ustanovení autorského zákona jsou zodpovědné jednotlivé složky Univerzity Karlovy. / Each constituent part of Charles University is responsible for adherence to all provisions of the copyright law.

Upozornění / Notice: Získané informace nemohou být použity k výdělečným účelům nebo vydávány za studijní, vědeckou nebo jinou tvůrčí činnost jiné osoby než autora. / Any retrieved information shall not be used for any commercial purposes or claimed as results of studying, scientific or any other creative activities of any person other than the author.

DSpace software copyright © 2002-2015  DuraSpace
Theme by 
@mire NV