Ken Shan <[EMAIL PROTECTED]> wrote: > In Haskell, backquotes can be used to convert individual identifiers > into infix operators, but not complex expressions. For example, > > [1,2,3] `zip` [4,5,6] > > is OK, but not > > [1,2,3] `zipWith (+)` [4,5,6] > > Is there any reason other than potential confusion when one of the two > backquotes is accidentally omitted?
I've often wondered about this myself, but it's difficult to make a pleasant distinction between what's allowed in between `` and an ordinary expression. They can't be the same because you can't nest them. Using a matched pair of quotation marks would work, but then you have the possibility of writing really horrid expressions. > In any case, perhaps some people on this mailing list would appreciate > the following implementation of "infix expressions" that Dylan Thurston > and I came up with -- as algebraic and perverse as we could manage: > > infixr 0 -:, :- > data Infix f y = f :- y > x -:f:- y = x `f` y > > main = print $ [1,2,3] -: zipWith (+) :- [4,5,6] Yes, I appreciate that! It reminds me of how I got the syntax of Ponder -- which had no predefined operators, not even "if" -- to work. > The trick is that there is no trick. Oh, I think it /is/ a trick :-) Jón -- Jón Fairbairn [EMAIL PROTECTED] 31 Chalmers Road [EMAIL PROTECTED] Cambridge CB1 3SZ +44 1223 570179 (after 14:00 only, please!) _______________________________________________ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe