left and right sections extended
Christian.Maeder at dfki.de
Fri Sep 30 14:21:52 CEST 2011
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?
More information about the Haskell-prime