Semantics of programming languages: structures and techniques
Semantics of programming languages: structures and techniques
The essence of functional programming
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A system of constructor classes: overloading and implicit higher-order polymorphism
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Monad transformers and modular interpreters
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A transformation-based optimiser for Haskell
Science of Computer Programming - Special issue on the 6th European symposium on programming
Essentials of programming languages (2nd ed.)
Essentials of programming languages (2nd ed.)
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
Structure and Interpretation of Computer Programs
Structure and Interpretation of Computer Programs
The Definition of Standard ML
Keep it clean: a unique approach to functional programming.
ACM SIGPLAN Notices
ESOP '94 Proceedings of the 5th European Symposium on Programming: Programming Languages and Systems
Functor Categories and Two-Level Languages
FoSSaCS '98 Proceedings of the First International Conference on Foundations of Software Science and Computation Structure
A Metalanguage for Programming with Bound Names Modulo Renaming
MPC '00 Proceedings of the 5th International Conference on Mathematics of Program Construction
A New Approach to Abstract Syntax Involving Binders
LICS '99 Proceedings of the 14th Annual IEEE Symposium on Logic in Computer Science
The Implementation of Functional Programming Languages (Prentice-Hall International Series in Computer Science)
The logic of demand in Haskell
Journal of Functional Programming
A simple semantics for polymorphic recursion
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
Bimonadic semantics for basic pattern matching calculi
MPC'06 Proceedings of the 8th international conference on Mathematics of Program Construction
Hi-index | 0.00 |
Functional languages have the 驴-calculus at their core, but then depart from this firm foundation by including features that alter their default evaluation order. The resulting mixed evaluation--partly lazy and partly strict--complicates the formal semantics of these languages. The functional language Haskell is such a language, with features such as pattern-matching, case expressions with guards, etc., in troducing a modicum of strictness into the otherwise lazy language. But just how does Haskell differ from the lazy 驴-calculus? We answer this question by introducing a calculational semantics for Haskell that exposes the interaction of its strict features with its default laziness.