从前的lambda函数
在php里面,传统方法是利用create_function来建立lambda函数,老实说,这个创建过程比较麻烦。拿php手册上的例子来说:
CODE:
-
<?php
-
$newfunc
= create_function('$a,$b', 'return
"ln($a) + ln($b) = " . log($a * $b);');
-
echo
"New anonymous function: $newfunc/n";
-
echo
$newfunc(2, M_E) . "/n";
-
// outputs
-
// New anonymous function:
lambda_1
-
// ln(2) + ln(2.718281828459) =
1.6931471805599
-
?>
上头这样一段代码,恐怕一时半会还看不明白$newfunc到底是怎样的一个lambda函数。
php 5.3的lambda函数语法
改进的lambda基本语法
CODE:
-
function
& (parameters) use (lexical vars) { body }
创建一个简单lambda函数的例子。下面的例子看上去,语法和javascript甚至很接近了,对于我这样一个由javascript入门到php来的coder来说,这样的代码真是让人瞅着亲切。代码最后的;号是不可省略的,否则会碰到语法错误。
CODE:
-
$lambda
= function () { echo "Hello World!/n"; };
调用方法很多
CODE:
-
$lambda
();
-
call_user_func
($lambda);
-
call_user_func_array
($lambda, array ());
在函数中的简单调用
CODE:
-
function
replace_spaces ($text) {
-
$replacement = function ($matches) {
-
return str_replace ($matches[1], ' ', ' ').' ';
-
};
-
return preg_replace_callback ('/( +) /', $replacement, $text);
-
}
甚至可以把lambda函数作为结果返回,这样引申的语法变化会相当丰富,想想javascript就知道了
CODE:
-
function
getAdder($x) {
-
return function ($y) use ($x) {
-
// or: lexical
$x;
-
return $x + $y;
-
};
-
}
还可以导入外部变量到lambda函数,通过关键字use完成。如果没有这个关键字,以前可能要通过global来传递这些变量。
CODE:
-
function
replace_in_array ($search, $replacement,
$array) {
-
$map = function ($text) use ($search, $replacement) {
-
if (strpos ($text, $search)> 50) {
-
return str_replace ($search, $replacement,
$text);
-
} else {
-
return $text;
-
}
-
};
-
return array_map ($map,
$array);
-
}
这个patch由Christian Seiler, Dmitry Stogov提供,目前已经加入到php 5.3。
原文见:Request for Comments: Lambda
functions and closures
分享到:
相关推荐
connect函数的几个用法 通过分别演示信号有无参数与对应的有无参数的槽函数 能够很好地了解connect的用法 【包括对lambda函数的应用】
在C++中使用Lambda函数提高性能(小文档),比较详细的用例,文章很短
# 题目:使用lambda来创建匿名函数。
lambda, AWS Lambda函数的创作工具.zip
PSPy 一个简单的Python 2.7 AWS Lambda函数,用于执行PowerShell binary和编组输入/输出到PowerShell
lambda函数.py
lambda-uploader, 帮助打包和上传 python lambda函数到 AWS 上传器提供用于打包和发布 python AWS Lambda函数的快速 命令行 实用程序。 这是一个正在进行中的工作,并且总是欢迎请求。安装可以通过pip安装最新版本的...
本篇文章主要是介绍了Python的Lambda函数与排序,简单的介绍了Lambda函数的用法和排序,有需要的朋友可以了解一下。
关键字lambda用于定义一种特殊的函数——匿名函数,又称lambda函数。匿名函数并非没有名字,而是将函数名作为函数结果返回,其语法格式如下:;1.导入整个模块;2.导入特定的函数;3.导入模块中所有函数;在Python中...
java lambda函数式编程完成实例代码,看完代码,基本上就会用lambda 了
本文实例讲述了Python lambda函数基本用法。分享给大家供大家参考,具体如下: 这里我们简单学习一下python lambda函数。 首先,看一下python lambda函数的语法,如下: f=lambda [parameter1,parameter2,……]:...
aws-lambda-local, 在本地运行自动气象站的Lambda函数 aws-lambda-local在本地运行 AWS Lambda函数 ! 最轻量的库- 没有外部依赖关系。 少于 200行代码。Windows,Mac和Linux测试 !安装npm install -g aws-lambda-...
lambda函数也叫匿名函数,即,函数没有具体的名称。先来看一个最简单例子:复制代码 代码如下:def f(x):return x**2print f(4)Python中使用lambda的话,写成这样复制代码 代码如下:g = lambda x : x**2print g(4) ...
Lambda 表达式自 PHP 5.3 起,Lambda 表达式、闭包或匿名函数可用。 function inc ( $ a ) { return $ a + 1 ; }$ inc = function ( $ a ) { return $ a + 1 ; };echo $ inc ( 42 ); // => 43$ sqr = function ( $ a...
利用Ansible实现AWS Lambda函数的示例部署
aws-lambda-send-ses-email, 使用Amazon发送电子邮件的AWS Lambda函数 aws-lambda-send-ses-email使用Amazon发送电子邮件的AWS Lambda函数。这个功能的主要目的是提供一个服务器端后端来发送来自 static 网站的电子...
在Go中创建您的AWS Lambda函数代码
sqs-to-lambda-via-lambda, 向Lambda函数交付SQS队列项( 使用 Lambda ) 到 Lambda ( 通过 Lambda )当前没有用于Lambda的本机SQS事件源。 这种情况很糟糕。你可以运行类似于但是需要运行一个实例,谁想这样做。?运行...
lambda 表达式,又称匿名函数,即,函数没有具体的名称,常用来表示内部仅包含 1 行表达式的函数。 使用 lambda 编写的代码更加简洁紧凑,但是 lambda 函数支持的功能却是十分有限的,目前 PEP8 已经不建议使用 ...