Found 9 bookmarks
Newest
Levels of action
Levels of action
The most important difference between Level 1 and Level 2 actions is that Level 1 actions tend to be additive, while Level 2 actions tend to be multiplicative. What levels of action should I spend more or less time in, given my stage of life?
·davidklaing.com·
Levels of action
“Building Haskell Programs with Fused Effects”
“Building Haskell Programs with Fused Effects”
Haskell is a purely functional programming language: by default, Haskell functions do not cause side effects such as system I/O, nondeterminism, or exception handling. As such, Haskell programs are generally expressed in terms of monad transformers, which provide the facility to compose different side effects into a single interface powerful enough to express the programmer's needs. The monad transformer library, mtl, is mature and powerful, but complicates and in some cases constrains the construction and generalization of user-specified monads. A class of libraries known as 'effect systems' have emerged in an attempt to solve the problems associated with monad transformers. Effect systems provide a compositional approach to program construction, generally using a single monadic type specialzed with a programmer-provided list of capabilities. Effect systems are more powerful and flexible than monad transformers, but their adoption in industry has been minimal, due both to their incompatiblity with mtl and their historically poor performance. The new fused-effects library changes the status quo: it provides an extensible and flexible vocabulary for program construction, yielding a more expressive interface than mtl without sacrificing any performance characteristics. I'll describe the history of effect systems, outline the tradeoffs associated with programming with effects, and demonstrate the use of fused-effects in practice. Patrick Thomson GitHub, Inc. @importantshock Patrick is a senior engineer on GitHub's Semantic Code team, building systems to understand and analyze the corpus of code on GitHub. He enjoys peaceful countryside walks and loud rap shows.
·youtube.com·
“Building Haskell Programs with Fused Effects”
Emily Riehl’s A Categorical View of Computational Effects talk
Emily Riehl’s A Categorical View of Computational Effects talk
Keynote by Dr. Emily Riehl C◦mp◦se :: Conference http://www.composeconference.org/ May 18, 2017 Slides: http://www.math.jhu.edu/~eriehl/compose.pdf Monads have famously been used to model computational effects, although, curiously, the computer science literature presents them in a form that is scarcely recognizable to a category theorist — I’d say instead that a monad is just a monoid in the category of endofunctors, what’s the problem? ;) To a categorical eye, computational effects are modeled using the Kleisli category of a monad, a perspective which suggests another categorical tool that might be used to reason about computation. The Kleisli category is closely related to another device for categorical universal algebra called a Lawvere theory, which may be a more natural framework to model computation (an idea suggested by Gibbons, Hinze, Hyland, Plotkin, Power and certainly others). This talk will survey monads, Lawvere theories, and the relationships between them and illustrate the advantages and disadvantages of each framework through a variety of examples: lists, exceptions, side effects, input-output, probabilistic non-determinism, and continuations.
·youtu.be·
Emily Riehl’s A Categorical View of Computational Effects talk
Selective applicative functors package
Selective applicative functors package
Selective Applicative Functors: Declare Your Effects Statically, Select Which to Execute Dynamically - GitHub - snowleopard/selective: Selective Applicative Functors: Declare Your Effects Staticall...
·github.com·
Selective applicative functors package
The Either monad specifically only models early exit on Left without resumption. You’d need something more powerful like Cont to be able to resume. There are Haskell libraries that provide extensible effects using free monads
The Either monad specifically only models early exit on Left without resumption. You’d need something more powerful like Cont to be able to resume. There are Haskell libraries that provide extensible effects using free monads
The Either monad specifically only models early exit on Left without resumption. You'd need something more powerful like Cont to be able to resume. There are Haskell libraries that provide extensible effects using free monads, like https://t.co/rsvEbVULPs— Joe Groff (@jckarter) July 21, 2019
·twitter.com·
The Either monad specifically only models early exit on Left without resumption. You’d need something more powerful like Cont to be able to resume. There are Haskell libraries that provide extensible effects using free monads
On Compositionality
On Compositionality
reasoning about the system should be done recursively on its structure. ​ good software design is ultimately an art. ​ another example of reasoning via an interface. ​ I suspect that interfaces are in fact synonymous with compositionality. That is, compositionality is not just the ability to compose objects, but the ability to work with an object after intentionally forgetting how it was built. ​ can interact in complex ways that block understanding ​ More generally, I claim that the opposite of compositionality is emergent effects. The common definition of emergence is a system being ‘more than the sum of its parts’, and so it is easy to see that such a system cannot be understood only in terms of its parts, i.e. it is not compositional. Moreover I claim that non-compositionality is a barrier to scientific understanding, because it breaks the reductionist methodology of always dividing a system into smaller components and translating explanations into lower levels.
·julesh.com·
On Compositionality