On Wed, 23 Nov 2005, Scherrer, Chad wrote:

Henning Thielemann <[EMAIL PROTECTED]> writes:

Since
  (a . b) x
  a $ b x
  a (b x)

are equivalent, do you also want to reverse function and
argument in order to match argument order of . and $ ?

That is
  x (b . a)
  x b $ a
  (x b) a
?

I'm sorry, I'm not sure I understand your question. Are you asking
whether one should be allowed to write x f instead of f x? I don't think
anyone is advocating this, but is can be convenient to have an infix
operator for this purpose.

I want to say, that the order of symbols for ($), (.) and function application is consistent. This is a fine thing. I think that shall not be distroyed by giving ($) and (.) reversed argument order.

It's of course a good question, why (>>) and (>>=) have the opposite order of (.). Compare function application
 a b
  where a is applied to b with the monadic case
 b >>= a
where a is applied to the result of b. This makes changing a non-monadic expression to a similar monadic expression more difficult. Why is there no (<<) and why is (=<<) not the default? The order of 'do {a;b;c}' is compatible with that of (>>). So we have the fundamental conflict, that usually function application is from right to left, but interpreting imperative statements is from left to right. I think that's a similar conflict like that of little endian and big endian.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to