2014
DOI: 10.1007/978-3-319-04132-2_3
|View full text |Cite
|
Sign up to set email alerts
|

The F# Computation Expression Zoo

Abstract: Abstract. Many computations can be structured using abstract computation types such as monoids, monad transformers or applicative functors. Functional programmers use those abstractions directly while mainstream languages often integrate concrete instances as language features -e.g. generators in Python or asynchronous computations in C# 5.0. The question is, is there a sweet spot between convenient, hardwired language features, and an inconvenient but flexible libraries?F# computation expressions answer this … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
13
0

Year Published

2014
2014
2022
2022

Publication Types

Select...
4
2
1

Relationship

2
5

Authors

Journals

citations
Cited by 17 publications
(13 citation statements)
references
References 22 publications
0
13
0
Order By: Relevance
“…The assumption that abstraction is desirable is another part of the Algol research programme. Similarly, there are only few papers discussing syntax for using monads [16,46] and those focus on formal properties of the notation, rather than on its cognitive aspects [3].…”
Section: Monads and Research Paradigmsmentioning
confidence: 99%
See 1 more Smart Citation
“…The assumption that abstraction is desirable is another part of the Algol research programme. Similarly, there are only few papers discussing syntax for using monads [16,46] and those focus on formal properties of the notation, rather than on its cognitive aspects [3].…”
Section: Monads and Research Paradigmsmentioning
confidence: 99%
“…However, thinking of monads as computations is likely the reason why most formal definitions now prefer bind over map and join (the former is more convenient for programming, but the latter is simpler for proving). Similarly, thinking of monads more generally as non-standard computations likely contributed to their introduction in F# [46]. As an impure language, F# does not need monads for implementing state or exceptions, but they become useful for asynchronous computations [52].…”
Section: How Programming Concepts Evolvementioning
confidence: 99%
“….} block, which is an F# computation expression [22]. The F# compiler performs de-sugaring similar to the CPS transformation and interprets keywords such as let!…”
Section: Loading Data and Updating The User Interfacementioning
confidence: 99%
“…Petricek and Syme [20] describe a novel use of F# computation expression syntax to write idiom computations using let notation, which is partly inspired by syntax for formlets [5], an abstraction for building web forms that is an idiom.…”
Section: Related Workmentioning
confidence: 99%