Monads

Monad (functional programming)

Monads are structures that combine program fragments and wrap their return values in a type with additional computation. They define two operators to wrap values and compose functions, and can be used to reduce boilerplate code and abstract away control flow and side-effects. Monads originate from category theory and must satisfy the monad laws. They can also be used to implement language features, such as in Haskell's core libraries.

3 courses cover this concept

15-312 Foundations of Programming Languages

Carnegie Mellon University

Spring 2014

A comprehensive course at Carnegie Mellon University that introduces fundamental principles of programming language design and implementation from a mathematical perspective. It delves deep into the structural and dynamic aspects of programming languages, studying concepts like recursion, objects, polymorphism, and parallelism.

No concepts data

+ 38 more concepts

15-317 / 15-657 Constructive Logic

Carnegie Mellon University

Fall 2021

This undergraduate course introduces students to constructive logics such as intuitionistic and linear logic, focusing on their use in computer science. The goal is to understand the distinction between classical and constructive logic, define logical connectives, implement theorem provers, and explore computational interpretations of logics. Concepts covered include natural deduction, sequent calculus, logic programming, linear logic, and many more.

No concepts data

+ 35 more concepts

CS 242 Programming Languages

Stanford University

Fall 2022

Stanford University's CS 242 teaches the basics of programming language theory, its applications, and future trends. It focuses on the practical and theoretical understanding of programming languages, covering typed lambda calculus, state, monads, and more.

No concepts data

+ 15 more concepts