php - HACK Lambda 示例——什么?

标签 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

最佳答案

从概念上讲,$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

关于php - HACK Lambda 示例——什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22969896/

相关文章:

php - 我怎样才能从 php 制作这个 json 格式?

java - 如何使用 java 8 stream api 更正编写代码?

mysql - 使用 lambda 时出现 Rails 3 作用域关联错误

java - 元组和流的类型问题

hhvm - 当我在 Homestead 上打开 "hhvm"时,我没有收到任何语法错误或缺少类错误,只是空白页

php - 在 HHVM + Apache + fastCGI 上部署 Symfony2

php - HHVM Hack 源代码到纯 PHP

php - 使用 simpleXML 编辑 XML

php - 关于如何在 linux 中与另一个 shell 交互使用 shell 的一些问题

php - 尝试上传文件时 $_FILES 为空