2013
DOI: 10.1007/978-3-642-35705-3_2
|View full text |Cite
|
Sign up to set email alerts
|

Unifying Theories of Programming with Monads

Abstract: Abstract. The combination of probabilistic and nondeterministic choice in program calculi is a notoriously tricky problem, and one with a long history. We present a simple functional programming approach to this challenge, based on algebraic theories of computational effects. We make use of the powerful abstraction facilities of modern functional languages, to introduce the choice operations as a little embedded domain-specific language rather than having to define a language extension; we rely on referential … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
19
0

Year Published

2013
2013
2022
2022

Publication Types

Select...
4
2
1

Relationship

0
7

Authors

Journals

citations
Cited by 12 publications
(19 citation statements)
references
References 52 publications
0
19
0
Order By: Relevance
“…Traditionally, reasoning about pure functional programs is done through equational reasoning. There are several attempts to extend these techniques to the kinds of effectful programs we have presented in this paper [Gibbons 2013;Gibbons and Hinze 2011;Hutton and Fulger 2008].…”
Section: Related Workmentioning
confidence: 99%
“…Traditionally, reasoning about pure functional programs is done through equational reasoning. There are several attempts to extend these techniques to the kinds of effectful programs we have presented in this paper [Gibbons 2013;Gibbons and Hinze 2011;Hutton and Fulger 2008].…”
Section: Related Workmentioning
confidence: 99%
“…The starting point is the hierarchy of [13]. It needed to be adjusted to fit other papers [1,12,30,31]:…”
Section: Other Monads In the Hierarchy Of Effectsmentioning
confidence: 99%
“…-The proof scripts we obtain are faithful to the original proofs. We benchmark our library against numerous examples of the literature (most examples from [12,13,30,31]) and observe that formal proofs closely match their penciland-paper counterparts and that they can actually be shorter thanks to the terseness of SSReflect's tactic language. We also apply our framework to new examples such as the formalization of the semantics of an imperative language.…”
Section: Introductionmentioning
confidence: 99%
“…For probabilistic programming, several variants of probability monads have been proposed [16,5,3,16]. What is common to all of them is that the monad makes probabilistic choice points explicit, and sequences probabilistic computations using the monadic bind operator.…”
Section: Embeddings Against All Oddsmentioning
confidence: 99%
“…We briefly describe a "classical" probability monad [16,5,3]. Conceptually, Rand[A] represents a random process yielding an independent random variable at each monadic bind.…”
Section: A Classical Probability Monadmentioning
confidence: 99%