This HTML5 document contains 29 embedded RDF statements represented using HTML+Microdata notation.

The embedded RDF content will be recognized by any processor of HTML5 Microdata.

Namespace Prefixes

PrefixIRI
dctermshttp://purl.org/dc/terms/
n13https://kar.kent.ac.uk/67137/
n2https://kar.kent.ac.uk/id/eprint/
n8https://kar.kent.ac.uk/id/eprint/67137#
wdrshttp://www.w3.org/2007/05/powder-s#
n21http://purl.org/ontology/bibo/status/
dchttp://purl.org/dc/elements/1.1/
n18https://kar.kent.ac.uk/id/subject/
rdfshttp://www.w3.org/2000/01/rdf-schema#
n6https://demo.openlinksw.com/about/id/entity/https/raw.githubusercontent.com/annajordanous/CO644Files/main/
n11http://eprints.org/ontology/
bibohttp://purl.org/ontology/bibo/
n15https://kar.kent.ac.uk/id/publication/
n20https://kar.kent.ac.uk/id/org/
rdfhttp://www.w3.org/1999/02/22-rdf-syntax-ns#
owlhttp://www.w3.org/2002/07/owl#
n17doi:10.22152/programming-journal.org/2018/2/
n4https://kar.kent.ac.uk/id/document/
n10https://kar.kent.ac.uk/id/
xsdhhttp://www.w3.org/2001/XMLSchema#
n14https://demo.openlinksw.com/about/id/entity/https/www.cs.kent.ac.uk/people/staff/akj22/materials/CO644/
n19https://kar.kent.ac.uk/id/person/

Statements

Subject Item
n2:67137
rdf:type
n11:ArticleEPrint n11:EPrint bibo:AcademicArticle bibo:Article
rdfs:seeAlso
n13:
owl:sameAs
n17:12
n11:hasDocument
n4:1429358 n4:1429359 n4:1429360 n4:1429361 n4:1367717 n4:1367796
n11:hasPublished
n4:1367717
dc:hasVersion
n4:1367717
dcterms:title
What we talk about when we talk about monads
wdrs:describedby
n6:export_kar_RDFN3.n3 n14:export_kar_RDFN3.n3
dcterms:date
2018-03-29
dcterms:creator
n19:ext-tomas@tomasp.net
bibo:status
n21:peerReviewed n21:published
dcterms:publisher
n20:ext-bfef54b12ee61272f8044af4b8509066
bibo:abstract
Computer science provides an in-depth understanding of technical aspects of programming concepts, but if we want to understand how programming concepts evolve, how programmers think and talk about them and how they are used in practice, we need to consider a broader perspective that includes historical, philosophical and cognitive aspects. In this paper, we develop such broader understanding of monads, a programming concept that has an infamous formal definition, syntactic support in several programming languages and a reputation for being elegant and powerful, but also intimidating and difficult to grasp. This paper is not a monad tutorial. It will not tell you what a monad is. Instead, it helps you understand how computer scientists and programmers talk about monads and why they do so. To answer these questions, we review the history of monads in the context of programming and study the development through the perspectives of philosophy of science, philosophy of mathematics and cognitive sciences. More generally, we present a framework for understanding programming concepts that considers them at three levels: formal, metaphorical and implementation. We base such observations on established results about the scientific method and mathematical entities - cognitive sciences suggest that the metaphors used when thinking about monads are more important than widely accepted, while philosophy of science explains how the research paradigm from which monads originate influences and restricts their use. Finally, we provide evidence for why a broader philosophical, sociological look at programming concepts should be of interest for programmers. It lets us understand programming concepts better and, fundamentally, choose more appropriate abstractions as illustrated in a number of case studies that conclude the paper.
dcterms:isPartOf
n10:repository n15:ext-24737321
dcterms:subject
n18:QA76
bibo:authorList
n8:authors
bibo:issue
3
bibo:volume
2