Just do it: simple monadic equational reasoning
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, leadin...
Main Authors: | , |
---|---|
Format: | Conference item |
Published: |
ACM
2011
|
_version_ | 1826258995366592512 |
---|---|
author | Gibbons, J Hinze, R |
author_facet | Gibbons, J Hinze, R |
author_sort | Gibbons, J |
collection | OXFORD |
description | 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. |
first_indexed | 2024-03-06T18:42:52Z |
format | Conference item |
id | oxford-uuid:0d7f268b-e12b-4539-b50c-5088d0d773b2 |
institution | University of Oxford |
last_indexed | 2024-03-06T18:42:52Z |
publishDate | 2011 |
publisher | ACM |
record_format | dspace |
spelling | oxford-uuid:0d7f268b-e12b-4539-b50c-5088d0d773b22022-03-26T09:40:50ZJust do it: simple monadic equational reasoningConference itemhttp://purl.org/coar/resource_type/c_5794uuid:0d7f268b-e12b-4539-b50c-5088d0d773b2Department of Computer ScienceACM2011Gibbons, JHinze, ROne 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. |
spellingShingle | Gibbons, J Hinze, R Just do it: simple monadic equational reasoning |
title | Just do it: simple monadic equational reasoning |
title_full | Just do it: simple monadic equational reasoning |
title_fullStr | Just do it: simple monadic equational reasoning |
title_full_unstemmed | Just do it: simple monadic equational reasoning |
title_short | Just do it: simple monadic equational reasoning |
title_sort | just do it simple monadic equational reasoning |
work_keys_str_mv | AT gibbonsj justdoitsimplemonadicequationalreasoning AT hinzer justdoitsimplemonadicequationalreasoning |