A critique of Abelson and Sussman or why calculating is better than scheming
ACM SIGPLAN Notices
A probabilistic powerdomain of evaluations
Proceedings of the Fourth Annual Symposium on Logic in computer science
Notions of computation and monads
Information and Computation
Imperative functional programming
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Stochastic lambda calculus and monads of probability distributions
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Testing Probabilistic and Nondeterministic Processes
Proceedings of the IFIP TC6/WG6.1 Twelth International Symposium on Protocol Specification, Testing and Verification XII
Notions of Computation Determine Monads
FoSSaCS '02 Proceedings of the 5th International Conference on Foundations of Software Science and Computation Structures
Applied Semantics, International Summer School, APPSEM 2000, Caminha, Portugal, September 9-15, 2000, Advanced Lectures
Separation and information hiding
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Abstraction, Refinement And Proof For Probabilistic Systems (Monographs in Computer Science)
Abstraction, Refinement And Proof For Probabilistic Systems (Monographs in Computer Science)
FUNCTIONAL PEARLS: Probabilistic functional programming in Haskell
Journal of Functional Programming
Distributing probability over non-determinism
Mathematical Structures in Computer Science
The Category Theoretic Understanding of Universal Algebra: Lawvere Theories and Monads
Electronic Notes in Theoretical Computer Science (ENTCS)
Haskell '07 Proceedings of the ACM SIGPLAN workshop on Haskell workshop
Ynot: dependent types for imperative programs
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
HasCasl: Integrated higher-order specification and program development
Theoretical Computer Science
Hoare type theory, polymorphism and separation1
Journal of Functional Programming
Real World Haskell
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
A Hoare Logic for the State Monad
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
Kleene monads: handling iteration in a framework of generic effects
CALCO'09 Proceedings of the 3rd international conference on Algebra and coalgebra in computer science
Property-preserving program refinement
Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
Proceedings of the 2012 Haskell Symposium
Elementary probability theory in the eindhoven style
MPC'12 Proceedings of the 11th international conference on Mathematics of Program Construction
Electronic Notes in Theoretical Computer Science (ENTCS)
Typed linear algebra for weigthed (probabilistic) automata
CIAA'12 Proceedings of the 17th international conference on Implementation and Application of Automata
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Monadic combinators for "Putback" style bidirectional programming
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Instances of Computational Effects: An Algebraic Perspective
LICS '13 Proceedings of the 2013 28th Annual ACM/IEEE Symposium on Logic in Computer Science
Hi-index | 0.00 |
One of the appeals of pure functional programming is that it is so amenable to equational reasoning. One of the problems of pure functional programming is that it rules out computational effects. Moggi and Wadler showed how to get round this problem by using monads to encapsulate the effects, leading in essence to a phase distinction - a pure functional evaluation yielding an impure imperative computation. Still, it has not been clear how to reconcile that phase distinction with the continuing appeal of functional programming; does the impure imperative part become inaccessible to equational reasoning? We think not; and to back that up, we present a simple axiomatic approach to reasoning about programs with computational effects.