What we talk about when we talk about monads

03/27/2018
by   Tomas Petricek, et al.
0

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 number of case studies that conclude the paper.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
11/18/2020

A Theoretical Computer Science Perspective on Consciousness

The quest to understand consciousness, once the purview of philosophers ...
research
07/29/2021

A Theory of Consciousness from a Theoretical Computer Science Perspective: Insights from the Conscious Turing Machine

The quest to understand consciousness, once the purview of philosophers ...
research
01/12/2023

Language Cognition and Language Computation – Human and Machine Language Understanding

Language understanding is a key scientific issue in the fields of cognit...
research
11/15/2019

Temporarily Unavailable: Memory Inhibition in Cognitive and Computer Science

Inhibition is one of the core concepts in Cognitive Psychology. The idea...
research
02/14/2020

Programming Paradigms, Turing Completeness and Computational Thinking

The notion of programming paradigms, with associated programming languag...
research
03/06/2018

|Math, Philosophy, Programming, Writing| = 1

Philosophical thinking has a side effect: by aiming to find the essence ...
research
01/08/2020

Techniques d'anonymisation tabulaire : concepts et mise en oeuvre

In this document, we present a state of the art of anonymization techniq...

Please sign up or login with your details

Forgot password? Click here to reset