2018
DOI: 10.22152/programming-journal.org/2018/2/12
|View full text |Cite
|
Sign up to set email alerts
|

What we talk about when we talk about monads

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 langua… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1

Citation Types

0
3
0

Year Published

2018
2018
2021
2021

Publication Types

Select...
3
2

Relationship

0
5

Authors

Journals

citations
Cited by 5 publications
(3 citation statements)
references
References 38 publications
0
3
0
Order By: Relevance
“…Since all names have a meaning which must necessarily exist for them to be used within their language-game, it makes no sense to talk about whether a name "exists" or not (50, 57, 58). The meaning behind a name, and how to use it, must necessarily be known before a name is defined (31). Similarly to names, all words in a language game are ways to represent other things (50).…”
Section: Philosophical Underpinningsmentioning
confidence: 99%
See 1 more Smart Citation
“…Since all names have a meaning which must necessarily exist for them to be used within their language-game, it makes no sense to talk about whether a name "exists" or not (50, 57, 58). The meaning behind a name, and how to use it, must necessarily be known before a name is defined (31). Similarly to names, all words in a language game are ways to represent other things (50).…”
Section: Philosophical Underpinningsmentioning
confidence: 99%
“…Ironically, these constructs can also be formidable barriers to understanding. The fundamental issue, covered well in [31], is subtle but pervasive throughout typed functional programming: abstract knowledge of parametrically polymorphic functions and the transformations that they potentially enable is not sufficient to combine them sensibly or construct a cohesive narrative from them. The typed functional programming domain has many ways to describe functions and transformations (lambda, higher-order, functor, applicative, arrow, ...) but no way to describe how to link these into a cohesive narrative.…”
Section: The Bridge Over the River Wittgensteinmentioning
confidence: 99%
“…We then use nominal semantics [6] to deal with the generation and lexical binding of an unbounded number of unique chemical species ("If I create new species inside a loop, can I plot them?"). Finally we use an output monad [11], which is a somewhat grandiose but systematic scheme for generating a network of chemical reactions from a functional computation ("Can I produce a network whose size is determined by conditional execution?"). All answers are "yes!…”
Section: Programmatic Generation Of Network and Protocolsmentioning
confidence: 99%