hsyl20 wrote:
Nick Sabalausky Wrote:
The first notation "_ % 2 == 0" has no boilerplate and Scala is statically
typed (unlike Python).

I like that very much, especially since you can use either the implicit _ or
a manually named var. Although I would prefer something like "a", "b", etc,
(or maybe "_1", "_2",. etc) instead of "_", because "_" doesn't seem to lend
itself well to multi-arg lambdas, for instance, with reduce(). I don't like
*needing* to name a var when it's something trivial like in the above
examples.

You can use several "_", for instance:
scala>  val a = List(10,5,2,48,75,84,96,85,3,21,52)
a: List[Int] = List(10, 5, 2, 48, 75, 84, 96, 85, 3, 21, 52)

scala>  val b = a reduceLeft (_ + _)
b: Int = 481

The only problem is if you want to change arg order. In this case you have to 
use named parameters.
scala>  val b = a reduceLeft (_ - _)
b: Int = -461

scala>  val b = a reduceLeft ((a,b) =>  b - a)
b: Int = -5

Cheers
Sylvain

this seems counter-intuitive to me. Nemerle uses this syntax for currying which seems to me a much better meaning to this syntax.
for example ( using D like syntax):

int func (string a, char b, int c) { ... }
auto a = func( "hello", _, 8);

the above is syntax sugar for:

auto a = int(char b) { return func("hello", b, 8); };

Reply via email to