Create a Dreamwidth Account
Site and Account
Reload page in style:
2013-04-20 05:29 am (UTC)
The problem is that monads are everywhere. Everything is an effect. I think it's a bit myopic to focus only on things like state, IO, and exceptions which model the blatantly effectful structure of imperative languages. (That's how DDC started out, btw.) Continuations are a perfectly good effect, and is part of the blatantly effectful structure of Scheme et al. Nondeterminism is a perfectly good effect, and is part of the blatantly effectful structure of logic programming. Things like unification and futures are also perfectly good effects; building futures into the language was essentially the whole selling point for Oz and AliceML! And of course laziness is a perfectly good effect. Not to mention Lindsey and Ryan's work on deterministic parallelism. Nor all the recent work on memory regions. ...
The problem, of course, is that monads do not compose. That is, in general we do not have that
m (n a)
is isomorphic to
n (m a)
. This is a major problem that has been known for quite a while. Things like monad transformers give us a bit of compositionality, but they provably can't go far enough. There are a few other categorical goodies people have tried using to improve the compositionality/modularity aspect of things, but none of them appears to have been especially promising in the long run.
I don't have a reference for MacQueen's talk, alas. Oleg's rants include
about Lazy IO and
, which was
discussed to death on reddit
my suggestion on reddit
that really the problem already exists for
. At this point, I'm not sure how worthwhile the reddit comments will be to sift through; there's a fair bit of nuhuh-ing and handwringing which doesn't make any intellectual progress on the actual issues that Oleg brings up. I do think, though, that the thread me and Lennart Augustsson had touches on some important issues at stake in this whole line of argumentation about referential transparency (and what we mean by RT, or what we want to mean by RT, and why RT isn't the be-all-and-end-all of programming).
Thread from start
This account has disabled anonymous posting.
You can comment on this post while signed in with an account from many other sites, once you have confirmed your email address.
Sign in using OpenID
If you don't have an account you can
create one now
HTML doesn't work in the subject.
Check spelling during preview
This account is set to log the IP addresses of everyone who comments.
Links will be displayed as unclickable URLs to help prevent spam.
Expand Cut Tags
No cut tags
Page generated Aug. 18th, 2017 10:12 pm
Top of page