Lambda expressions

//only explicitly specify return type 
int (^powOfTwo)(int) = ^(int power) { return (int)pow(2, power); };

int pow8 = powOfTwo(8);
//pow8 is 256

double (^powOfThree)(double) = ^(double power) { return pow(3, power); };

double pow3 = powOfThree(3);
//pow3 is 27.0