Haskell 2020: 'let' to be optional and with wider scope of visibility, like other Haskell functions
Sven Panne
svenpanne at gmail.com
Sun Apr 16 17:04:17 UTC 2017
2017-04-16 17:21 GMT+02:00 Vassil Ognyanov Keremidchiev <varosi at gmail.com>:
> 1) It's not a problem, it's a improvement in syntax with lowering
> verbosity.
>
If it's not a real problem, it probably shouldn't be done: Every tiny
change in the syntax, even if it's somehow backwards compatible, has a high
cost in the whole ecosystem: The compiler has to be changed (probably by
far the easiest part), libraries for parsing/pretty-printing Haskell have
to be adapted, Editors/syntax highlighting rules have to be changed,
books/tutorials have to be rewritten and people have to be retrained (yes,
even if they don't use the new syntax: others might use it). To outweigh
this pain, there should be be a real gain, saving just 4 keystrokes isn't
worth it. And for me, and probably others, it's not an improvement in
syntax, it actually makes things worse by removing a syntactic cue.
> It's similar with the difference between Pascal and C syntax. One of the
> reasons we all love Haskell is because it's not so verbose.
>
I think it's actually not the non-verbosity which makes Haskell attractive,
it's its expressiveness. These are two quite different things.
> I have asked often why do-block is so different, than non-do-block.
>
Because it is fundamentally different from the rest, having a sequential
nature (for some meaning of "sequential" given by the underlying monad).
> Exchanging "x = foo" with "x <- foo" will result in error, so there is no
> problem that the difference is small.
>
Of course a machine will see the difference easily and immediately, the
question is: Will people do so, too?
> 2) you're right. May be lazyness could solve that? I'm not sure here.
>
So what are the desugaring rules for your proposal? I have the gut feeling
that they will be quite a bit more complicated and non-local than the
current ones. Remember the famous quote:
"If you can't explain it to a six year old, you don't understand it
yourself."
;-)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-prime/attachments/20170416/1fedd15c/attachment.html>
More information about the Haskell-prime
mailing list