Bob*_*ius 6 php lambda hhvm hacklang
谁能解释一下这是如何工作的?
http://docs.hhvm.com/manual/en/hack.lambda.php
变量是自动和可传递的(包括$ this):
<?hh
$z = 11;
$foo = $x ==> $y ==> $x * $z + $y;
$bar = $foo(5);
var_dump($bar(4)); // outputs 59
Run Code Online (Sandbox Code Playgroud)
从概念上讲,$foo
就像一个具有2个输入x和y的函数.调用$foo
就像是设置x = 5的部分函数评估.$bar
然后该调用用y = 4计算函数.所以你最终得到x*z + y = 5*11 + 4 = 59.
换句话说,$foo
是一个lambda,它评估另一个lambda.因此$bar
成为一个评估为数字的lambda.
$z = 11
$foo = $x ==> $y ==> $x * $z + $y;
// foo = f(x,y,z) = x * z + y
$bar = $foo(5); // $bar is now $y ==> 5 * $z + $y
// bar = f(y,z) = 5 * z + y
$result = $bar(4); // this gives you 5 * $z + 4 = 59
// result = f(z) = 5 * z + 4
var_dump(result); // outputs 59
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
731 次 |
最近记录: |