News for hackers. Stuff that matters.
Re:Why functional programming matters (1990) [pdf] by mafribe on Thursday May 07, 2015 @09:26PM (#9509510)
There are very different options.

First, approaches like Eff take pure functional computation as a basis and layer effects like call/cc or concurrency on top of that. I think it's better to go the other way and take concurrency, or, if you want to start sequential, a lambda-calculus with jumps a la call/cc or lambda-mu, as a basis see pure functional computation as a restriction of the base calculus.

Second, it's unclear that effects should be reflected in types for reasoning. That road leads to complicated typing systems without type inferences (see also dependent types). I think the following alternative is more appealing: stick with lightweight types (think Hindley-Milner), and leave reasoning to an external calculus (variants of Hoare logic).

Re:Why functional programming matters (1990) [pdf] by tel on Friday May 08, 2015 @09:27AM (#9511552)
That "analytic" style you suggest is really interesting, too. I'm not sure I have a dog in the ultimate race and I'd love to see both analytic and synthetic styles flourish, but from a mere terminology point of view I'd distinguish between the two languages in means of describing them as "pure" or not.

I also really worry that external proofs will ultimately be neglected in practice. I suppose this is again a "UX of Types" thing, but I'm something of a believer that anything that you do not literally demand of the programmer will eventually be sacrificed.

Re:Why functional programming matters (1990) [pdf] by mafribe on Monday May 11, 2015 @01:49AM (#9522947)
I'm not totally sure what you mean by "external proofs will ultimately be neglected".