[Melbourne-pm] pmap execution time (was I <3 map & grep too)
Toby Corkindale
toby.corkindale at strategicdata.com.au
Thu Nov 10 21:34:34 PST 2011
On 11/11/11 16:03, Toby Corkindale wrote:
> The code is:
> val foo = (1 to 8).toList.par.map(_ => 39)
> foo map dumb_fib foreach println
> // or you can write:
> // foo.map(dumb_fib).foreach(println)
Someone asked about the alternative ways to write that line, so I
thought I'd explain here in case others were curious.
Scala, like Perl, has some shortcuts in the language.
The following lines are all equivalent:
The long way:
foo.map(x => dumb_fib(x)).foreach(y => println(y))
Shortened by using _ (it's like $_ in perl):
foo.map(dumb_fib(_)).foreach(println(_))
If you only have one parameter, you don't need to even use _, it'll use
it by default:
foo.map(dumb_fib).foreach(println)
And if you only have one parameter to a function, you can skip the
parentheses and it'll just take the next symbol as the parameter. You
can also leave the dots out too:
foo map dumb_fib foreach println
This last form looks a bit more confusing to me than the previous one.
However if you're building DSLs, you can make stuff read a bit more like
natural language.
-Toby
More information about the Melbourne-pm
mailing list