left and right sections extended

Christian Maeder Christian.Maeder at dfki.de
Fri Sep 30 14:21:52 CEST 2011


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



More information about the Haskell-prime mailing list