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.
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 conceptsCarnegie 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 conceptsStanford 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