Tackling the Awkward Squad¶
Peyton Jones, S. (2001). Tackling the Awkward Squad: Monadic Input/Output, Concurrency, Exceptions, and Foreign-Language Calls in Haskell. Engineering Theories of Software Construction.
Cited by¶
2 citations across 2 artifacts.
Each citation links to the sentence it supports in the citing article.
Primes¶
- Side Effect
- Programming languages: a function with a side effect mutates state outside its return value (globals, files, databases, network); functional programming's central discipline is making effects explicit via monads, effect systems, or
IOso behavior is predictable from types.This sourceCanonical account of making side effects explicit in a pure functional language via the IO monad and effect typing.
- Programming languages: a function with a side effect mutates state outside its return value (globals, files, databases, network); functional programming's central discipline is making effects explicit via monads, effect systems, or
Mechanisms¶
- Thunk or Lazy Promise
- The discipline is to keep thunks pure where possible and to force eagerly at a known-safe point
This sourceIn Engineering Theories of Software Construction. IOS Press (2001). Shows how explicitly evaluating a lazy expression in the I/O layer fixes when it is forced and makes an exceptional value catchable at that point.
- The discipline is to keep thunks pure where possible and to force eagerly at a known-safe point
Verification¶
This reference passed the adversarial substantiation pipeline: it was checked to exist and to support the claim it is attached to. See how references were verified.
Registry ID ref:a00a8266146a · see in the full table