Programming with monoidal profunctors and semiarrows
Autor(a) principal: | |
---|---|
Data de Publicação: | 2023 |
Tipo de documento: | Tese |
Idioma: | eng |
Título da fonte: | Biblioteca Digital de Teses e Dissertações da USP |
Texto Completo: | https://www.teses.usp.br/teses/disponiveis/45/45134/tde-03112023-152323/ |
Resumo: | This work investigates monoidal profunctors and their extensions, such as effectful monoidal profunctors and semiarrows, as tools for reasoning and structuring pure functional programs from a categorical perspective and within a Haskell implementation. We approach them as monoids within a specific monoidal category of profunctors and as semiarrows in a semiarrow category. We examine the properties of this monoidal category and construct and implement the free monoidal profunctor. Furthermore, we detail the properties and laws of a semiarrow, deriving examples of its usage and highlighting its potential for effectively managing delays in synchronous programs. Moore machines serve as an illustrative example. Additional applications include optics and a monoidal profunctor structure-preserving connection between Moore machines, left scans, and left folds. |
id |
USP_92f0690f5c5f11ba5c4bae47ac123ed8 |
---|---|
oai_identifier_str |
oai:teses.usp.br:tde-03112023-152323 |
network_acronym_str |
USP |
network_name_str |
Biblioteca Digital de Teses e Dissertações da USP |
repository_id_str |
2721 |
spelling |
Programming with monoidal profunctors and semiarrowsProgramando com profuntores monoidais e semiarrowsEffectful monoidal profunctorsFunctional programmingMáquinas de MooreMonoidal profunctorsMoore machinesProfunctores monoidais com efeitos colateraisProfuntores monoidaisProgramação funcionalProgramação síncronaSemiarrowsSemiarrowsSynchronous programmingThis work investigates monoidal profunctors and their extensions, such as effectful monoidal profunctors and semiarrows, as tools for reasoning and structuring pure functional programs from a categorical perspective and within a Haskell implementation. We approach them as monoids within a specific monoidal category of profunctors and as semiarrows in a semiarrow category. We examine the properties of this monoidal category and construct and implement the free monoidal profunctor. Furthermore, we detail the properties and laws of a semiarrow, deriving examples of its usage and highlighting its potential for effectively managing delays in synchronous programs. Moore machines serve as an illustrative example. Additional applications include optics and a monoidal profunctor structure-preserving connection between Moore machines, left scans, and left folds.Este trabalho investiga os profuntores monoidais e suas extensões, como profuntores monoidais com efeitos colaterais e semiarrow, como ferramentas para raciocinar e estruturar programas funcionais puros a partir de uma perspectiva categórica e dentro de uma implementação em Haskell. Abordamos-os como monoides dentro de uma categoria monoidal específica de profuntores e como semiarrows em uma categoria de semiarrow. Examinamos as propriedades dessa categoria monoidal e construímos e implementamos o profunctor monoidal livre. Além disso, detalhamos as propriedades e leis de um semiarrow, derivando exemplos de seu uso e destacando seu potencial para gerenciar efetivamente atrasos em programação síncrona. As máquinas de Moore servem como um exemplo ilustrativo. Aplicações adicionais incluem óptica de profuntores e conexões que preservam a estrutura de um profunctor monoidal entre máquinas de Moore, dobragens com acumulação à esquerda (scan) e dobragens simples à esquerda (fold)Biblioteca Digitais de Teses e Dissertações da USPJaskelioff, Mauro JavierMelo, Ana Cristina Vieira deOliveira, Alexandre Garcia de2023-09-13info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisapplication/pdfhttps://www.teses.usp.br/teses/disponiveis/45/45134/tde-03112023-152323/reponame:Biblioteca Digital de Teses e Dissertações da USPinstname:Universidade de São Paulo (USP)instacron:USPLiberar o conteúdo para acesso público.info:eu-repo/semantics/openAccesseng2023-11-13T18:29:22Zoai:teses.usp.br:tde-03112023-152323Biblioteca Digital de Teses e Dissertaçõeshttp://www.teses.usp.br/PUBhttp://www.teses.usp.br/cgi-bin/mtd2br.plvirginia@if.usp.br|| atendimento@aguia.usp.br||virginia@if.usp.bropendoar:27212023-11-13T18:29:22Biblioteca Digital de Teses e Dissertações da USP - Universidade de São Paulo (USP)false |
dc.title.none.fl_str_mv |
Programming with monoidal profunctors and semiarrows Programando com profuntores monoidais e semiarrows |
title |
Programming with monoidal profunctors and semiarrows |
spellingShingle |
Programming with monoidal profunctors and semiarrows Oliveira, Alexandre Garcia de Effectful monoidal profunctors Functional programming Máquinas de Moore Monoidal profunctors Moore machines Profunctores monoidais com efeitos colaterais Profuntores monoidais Programação funcional Programação síncrona Semiarrows Semiarrows Synchronous programming |
title_short |
Programming with monoidal profunctors and semiarrows |
title_full |
Programming with monoidal profunctors and semiarrows |
title_fullStr |
Programming with monoidal profunctors and semiarrows |
title_full_unstemmed |
Programming with monoidal profunctors and semiarrows |
title_sort |
Programming with monoidal profunctors and semiarrows |
author |
Oliveira, Alexandre Garcia de |
author_facet |
Oliveira, Alexandre Garcia de |
author_role |
author |
dc.contributor.none.fl_str_mv |
Jaskelioff, Mauro Javier Melo, Ana Cristina Vieira de |
dc.contributor.author.fl_str_mv |
Oliveira, Alexandre Garcia de |
dc.subject.por.fl_str_mv |
Effectful monoidal profunctors Functional programming Máquinas de Moore Monoidal profunctors Moore machines Profunctores monoidais com efeitos colaterais Profuntores monoidais Programação funcional Programação síncrona Semiarrows Semiarrows Synchronous programming |
topic |
Effectful monoidal profunctors Functional programming Máquinas de Moore Monoidal profunctors Moore machines Profunctores monoidais com efeitos colaterais Profuntores monoidais Programação funcional Programação síncrona Semiarrows Semiarrows Synchronous programming |
description |
This work investigates monoidal profunctors and their extensions, such as effectful monoidal profunctors and semiarrows, as tools for reasoning and structuring pure functional programs from a categorical perspective and within a Haskell implementation. We approach them as monoids within a specific monoidal category of profunctors and as semiarrows in a semiarrow category. We examine the properties of this monoidal category and construct and implement the free monoidal profunctor. Furthermore, we detail the properties and laws of a semiarrow, deriving examples of its usage and highlighting its potential for effectively managing delays in synchronous programs. Moore machines serve as an illustrative example. Additional applications include optics and a monoidal profunctor structure-preserving connection between Moore machines, left scans, and left folds. |
publishDate |
2023 |
dc.date.none.fl_str_mv |
2023-09-13 |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/doctoralThesis |
format |
doctoralThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
https://www.teses.usp.br/teses/disponiveis/45/45134/tde-03112023-152323/ |
url |
https://www.teses.usp.br/teses/disponiveis/45/45134/tde-03112023-152323/ |
dc.language.iso.fl_str_mv |
eng |
language |
eng |
dc.relation.none.fl_str_mv |
|
dc.rights.driver.fl_str_mv |
Liberar o conteúdo para acesso público. info:eu-repo/semantics/openAccess |
rights_invalid_str_mv |
Liberar o conteúdo para acesso público. |
eu_rights_str_mv |
openAccess |
dc.format.none.fl_str_mv |
application/pdf |
dc.coverage.none.fl_str_mv |
|
dc.publisher.none.fl_str_mv |
Biblioteca Digitais de Teses e Dissertações da USP |
publisher.none.fl_str_mv |
Biblioteca Digitais de Teses e Dissertações da USP |
dc.source.none.fl_str_mv |
reponame:Biblioteca Digital de Teses e Dissertações da USP instname:Universidade de São Paulo (USP) instacron:USP |
instname_str |
Universidade de São Paulo (USP) |
instacron_str |
USP |
institution |
USP |
reponame_str |
Biblioteca Digital de Teses e Dissertações da USP |
collection |
Biblioteca Digital de Teses e Dissertações da USP |
repository.name.fl_str_mv |
Biblioteca Digital de Teses e Dissertações da USP - Universidade de São Paulo (USP) |
repository.mail.fl_str_mv |
virginia@if.usp.br|| atendimento@aguia.usp.br||virginia@if.usp.br |
_version_ |
1815256703912902656 |