[Haskell-cafe] Automatic fixity allocation for symbolic operators
brianh at metamilk.com
Sun Oct 15 11:48:37 EDT 2006
Jim Apple wrote:
> On 10/14/06, Brian Hulley <brianh at metamilk.com> wrote:
>> User defined fixities are an enormous problem for
>> an interactive editor
> This is the second or third time you've proposed a language change
> based on the editor you're writing. I don't think this is a fruitful
Bertram Felgenhauer wrote:
> Brian Hulley wrote:
>> infixr 9 . !! 9 9.9
> As far as editors go I have little sympathy.
Nicolas Frisby wrote:
> I think it's unreasonable to tie programmers' hands for the sake of
> off-loading rather trivial tasks to editors.
J. Garrett Morris wrote:
> On 10/14/06, Nicolas Frisby <nicolas.frisby at gmail.com> wrote:
>> Perhaps the editor could assume a default precedence ...
> I agree that changing the language in such an unintuitive way -
> breaking existing code in the process - to suit an editor is
> counterproductive and ridiculous.
I feel that the example I used of an interactive editor has somewhat
eclipsed the purpose of my post, which was basically to see if there is some
way to arrive at an agreed association of operator precedences with symbolic
ops such that this would include the current Prelude operators and have some
kind of intuitive extension to all other possible symbolic ops which would
respect one's expectations that <*> and <+> should be similar to * and + in
terms of relative precedence and absolute associativity. After all, if a
library writer decided to make <*> bind more loosely than <+> one might
justifiably be frustrated at the apparent inconsistency therefore why not
just make all this systematic and fixed down to remove these problems?
I had thought perhaps someone might have already made such a "global"
operator table suitable for functional programming, or some suitable
algorithm hence the inclusion of my first stumbling attempt at one to try
and set the ball rolling and at least save someone else several hours of
hard work going down the same dead end if such it is.
Jim Apple wrote:
> There are three ways to change Haskell's lexical structure:
> 1. DIY on an open-source compiler/interpreter of your choice.
> 2. Write your own compiler/interpreter.
> 3. Get the change into Haskell''.
> If the Haskell'' procedure is like the Haskell' procedure, you'll have
> to do 1 or 2 before you do 3.
> It's possible that you will convince someone that your syntax changes
> are worth doing, and that this person will do step 1 or step 2 for
> you, but I don't think so. I haven't done the research myself, but I
> think if you look at the source control logs for Your Favorite Haskell
> Compiler/interpreter and the HCAR, you will find very few
> commits/projects devoted to syntax. I think this is because Haskellers
> are much more interested in semantics.
Afaiu the whole concept of type classes arose because of the desire to avoid
having to think up different names for related functions and MPTCs were
suggested by the syntax for single parameter TCs (though I can't remember
the reference where I think I remember reading this latter point).
> Proposing changes that break existing code or segment the Haskell code
> base just doesn't seem like a win.
Since all syntactic and many semantic changes necessarily break existing
code or segment the code base this would seem to imply that the language
should not be changed at all or that everything must be backwards
compatible, so that we have to drag the Achilles heel of original mistakes
around for all eternity. I'd have thought a solution would be to just use a
tool to automatically convert existing code to whatever new syntax is found
to be better, thus allowing the language to be gradually perfected as more
and more issues are brought to light.
Still I agree with you that a more sensible approach in terms of someone
like me writing an editor is simply for me to take Haskell as an inspiration
and incorporate my ideas in it so that any changes can later be seen in
relation to a (hopefully facilitated and enjoyable) programming experience
rather than trying to share my ideas piecemeal and insufficiently
contextualized as they arise.
Thanks to all who replied,
Logic empowers us and Love gives us purpose.
Yet still phantoms restless for eras long past,
congealed in the present in unthought forms,
strive mightily unseen to destroy us.
More information about the Haskell-Cafe