Hi,

the following sections are currently legal in Haskell:

  (a + b +) and (++ a ++ b)

because + is left and ++ is right associative.

I would like to write

   (+ 1 +) and (++ " " ++)

as legal generalized sections, too, to stay for (\ a -> (a + 1 +)) and (\ a b -> a ++ " " ++ b) respectively.

The right-associative case would be "flip (\ b -> (++ " " ++ b))"

Such an extension would be easy to implement and it would also be a generalization of putting parenthesis around symbols as in (+) or (++).

Extending the grammar is easy:

aexp    -> ...
        |       ( infixexp qop )            (left section)
        |       ( qop⟨-⟩ infixexp )         (right section)

Some thoughts are needed to exclude the illegal cases (as done for left and right sections).

Is this worth a formal proposal or is this too confusing?

Cheers Christian

_______________________________________________
Haskell-prime mailing list
Haskell-prime@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-prime

Reply via email to