
On 6/5/20 7:05 AM, Anthony Clayden wrote:
Hi Michael, I apologise if I'm being dumb, but that ewd.pdf is not a 'publication' and is not by Dijkstra, right?
Sure.
It's taking some of the ideas from Dijkstra's EWD1300, but misapplying them to Haskell in a rather badly-informed way.
I wouldn't say so, for reasons explained below.
After all, Haskell already has a 'Application Operator' spelled ($), which is perfectly first-class and with which you can do the equational reasoning (with lambdas) that the doco is talking about.
The thread that I was recalling (Language complexity & beginners) can be found here, https://mail.haskell.org/pipermail/haskell-cafe/2016-February.txt and it started as a discussion about the use of ($) for function application. Namely, what should its type be? Whatever you answer is going to be wrong. The root of that problem is that ($) is itself a function, and you can't insist on using a function to apply function application without risk of severe injury. So the only way to even use ($) is via the true function application syntax, namely whitespace. But whitespace as function application syntax has its own problems. So we want something like ($), but we want it to be *syntax*, and it should take the place of " " rather than supplement it. That's the argument those guys (and the paper Ben suggested) are trying to make.
Also it doesn't seem to know Haskellers very well; nor Dijkstra's well-known support for Haskell in education.
There's other bits and pieces of 'Publications' on that the-magus site; including spoofs of Dijkstra which can't even spell his first name right. I rather suspect the ewd.pdf is a spoof that didn't turn out very funny. So altogether it's a couple of dudes shooting the breeze.
These all seem pretty irrelevant to the point being made, which I think has merit. This is all just a language design curiosity to me, though, and I'm not looking to start a new religious war until some of the present ones are resolved.