patch applied (haskell-prime-status): add ""Make $ left
associative, like application"
cgibbard at gmail.com
Wed Apr 23 04:06:08 EDT 2008
2008/4/23 Sittampalam, Ganesh <ganesh.sittampalam at credit-suisse.com>:
> > but it also seems not to make much sense to standardise
> > a Prelude which people strongly want to change.
> I'm strongly against this change, both on its own merits
> - in most cases when there is a real argument being passed, I find
> chains of $s easier to think about than your alternative -
> but most importantly because it would be enormously disruptive.
> It's the kind of completely unnecessary thing that simply lends
> ammunition to the people that claim Haskell is an academic
> language unsuited to the real world.
Well, try the alternative for a while. It was a little strange at
first for me as well, but once you're used to it, it's extremely
natural. I'd argue it even helps your thinking in other places,
because you're constantly seeing composition chains (even if you still
feel more comfortable thinking of them as application chains for a
while), and this exceptionally simple change gets you into the spirit
of thinking about functions as values to be combined, not just
applied. I would argue that this mindset is an important one for
functional programming, and anything which helps usher people toward
it is a good thing.
> > Also, the Haskell 98 Prelude has already been reported on, and
> > probably should continue to be supported in some way or another.
> How would you propose supporting multiple preludes at once? I have
> a feeling most of the pieces are in place and it's just a question
> of documenting the "best practice" properly, but it needs to be done
> and we need to get experience with doing it and with a gradual
> migration strategy before we even consider this kind of change.
I agree that support for this is very important. It would be nice to
simply be able to switch between base packages (and perhaps language
options, like 98/H') with a single simple flag.
I believe that migrating code will be quite a task regardless of the
outcome here, but at least for the packages that are in Hackage, the
system helpfully reports build failures, so we'll know where the
breakages are, and roughly what's left to be done.
More information about the Haskell-prime