Haskell is full of function calls, so the Haskell designers have used/invented 
several different ways to avoid some parenthesys in the code.

>From what I've seen if you remove some parenthesis well, in the right places, 
>the resulting code is less noisy, more readable, and it has less chances to 
>contain a bug (because syntax noise is a good place for bugs to hide).

One of the ways used to remove some parenthesys is a standard syntax that's 
optionally usable on any dyadic function (function with two arguments):

sum a b = a + b

sum 1 5 == 1 `sum` 5

The `name` syntax is just a different way to call a regular function with two 
arguments.

In Haskell there is also a way to assign an arbitrary precedence and 
associativity to such infix operators, but some Haskell programmers argue that 
too much syntax sugar gives troubles ( 
http://www.haskell.org/haskellwiki/Use_of_infix_operators ).

In D the back tick has a different meaning, and even if in D you use a 
different syntax, like just a $ prefix, I don't know how much good this syntax 
is for D:

int sum(int x, int y) { return x + y; }

int s = sum(1, sum(5, sum(6, sum(10, 30))));
Equals to (associativity of $ is fixed like this):
int s = 1 $sum 5 $sum 6 $sum 10 $sum 30;

So I think it's not worth adding to D.

Bye,
bearophile

Reply via email to