[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[no subject]



From: Kevin Hammond <kh@cs.glasgow.ac.uk>
Date: Mon, 22 Oct 90 12:10:34 BST
To: colin@minster.york.ac.uk, haskell@cs.glasgow.ac.uk
Sender: haskell-request@cs.glasgow.ac.uk

> re: sections
> ... 
> B. a function application: "(op) L" or "C (op) R"
>    (where "C" is the usual combinator: C f x y = f y x.)
> ...
>
> The application style B. has a particularly nasty characteristic:
> a partial application to a left argument **looks** more like a partial
> application to a right argument. This makes the notation very error
> prone for non-commuting operators.  It is difficult NOT to read
> 
>   filter ((<) x) ys
> 
> as "the items in ys less than x", for example.

Given the desirability of retaining operators as functions, i.e.
allowing for example

	lts = map (<)

how confusing is it for:

	filter ((<) x) ys

to mean the opposite of:

	filter (< x) ys

[Incidentally, there seems no violent opposition to operator sections amongst
committee members.  Sections were deleted from the preliminary design
solely on the grounds of simplifying Haskell.  Implementation is trivial,
of course.]

Kevin