Ruby1.9提供了lambda操作符,使得lambda表达式更像匿名函数。lambda表达式更像method,而block更像Proc,主要表现在:local return,break以及参数传递规则。
lambda更像method,所以支持默认参数:
1.8的lambda表达式:
succ = lambda{|x| x+1}
1.9使用lambda操作符->
succ = ->(x){ x+1 }
我们看这个显得更为自然,和匿名函数格式一样:
js的匿名函数:
succ = function(x){ return x+1; }
作为参数:
def compute(x,y,func)
put func.call(x,y);
end
compute(1,2,->(x,y){x+y});
compute(1,2,->(x,y){x*y});
函数复合:
def compose(f,g){
->(x){f[g[x]]} #->(x){f.call(g.call(x))}
}
succOfSquare = compose(->(x){x+1},->(x){x*x})
默认参数:
lamb = ->(x,y=10){x * y}
lamb.call(10) #=> 100
lamb.call(10,100) #=> 1000
分享到:
相关推荐
Ruby的Block块是它的关键特色之一,用块能够写出简明且高度可重用的算法。即使没有别的用处,它至少消弱了人们对循环敬畏的态度。这个概念在其他语言和理论中还被称为:Lambda函数。Lambda是个十分令人迷惑的词汇,...
《Ruby程序设计语言》是Ruby的权威指南,全面涵盖该语言的1.8版和1.9版。本书详尽但并不拘泥于语言规范,既适合首次... 表达式和操作符 语句和控制结构 Method、proc、lambda和closure 类和模块 反射和元编程
此回购展示了如何包括Ruby原生宝石 注意力 直接在aws lambda中使用api通常是一种不好的做法。 因为它将很快消耗过多的连接。 如何使用 建立档案 $ ./build.sh 部署到aws $ sls deploy 然后查看并配置您的lambda以...
在对Ruby进行了简要的综述之后,本书详细介绍了以下内容:Ruby的句法和语法结构,数据结构和对象,表达式和操作符,语句和控制结构,方法、proc、lambda和闭包,反射和元编程,Ruby平台。 本书还包含对Ruby平台上...
ruby-on-lambda, 自动化脚本,帮助运行 ruby 2.1程序 上的 ruby为什么?因为:AWS的Lambda具有巨大的潜在意义和有趣的含义AWS的Lambda还没有正式支持 ruby,因为ruby 具有巨大的潜在意义和有趣的含义 !?通过:将一...
在对Ruby进行了简要的综述之后,《Ruby编程语言》详细介绍了以下内容:Ruby的句法和语法结构,数据结构和对象,表达式和操作符,语句和控制结构,方法、proc、lambda和闭包,反射和元编程,Ruby平台。本书还包含对...
ruby-vips-lambda:适用于Ruby Libvips Gem的AWS Lambda层
自已整理完全版最长用的lambda,基中包括lamnda介绍简答实体及多线程list,map相互转换等等。
最近在学习lambda演算的相关内容,由于资料不全,学习的过程很是痛苦,下面这篇文章主要给大家介绍了关于如何利用Ruby简单模拟Lambda演算的相关资料,需要的朋友可以参考借鉴,下面来随着小编一起学习学习吧。
2_Lambda表达式.zip2_Lambda表达式.zip2_Lambda表达式.zip
特征: 翻译和本地化将值插入到翻译中(与Ruby 1.9兼容的语法) 复数(兼容CLDR ) 可定制的音译为ASCII 灵活的默认值批量查询lambdas作为翻译数据自定义键/范围分隔符自定义异常处理程序具有可交换后端的可扩展...
名鼎鼎的LAMBDA算法,MATLAB版本,源码+说明手册manual,不可多得。 得到模糊度固定解和协方差,并且可以得到固定解的test ratio。多种方法可选。
PS Lambda code
java8lambda表达式的安卓Studio工程Demo,供初步学习使用
Lambda代码段实际为一个编译器生成的类的“operator ()”函数,编译器会为每一个Lambda函数生成一个匿名的类(在C++中,类和结构体实际一样,无本质区别,除了默认的访问控制)。 对Lambda的最简单理解,是将它...
主要介绍了Ruby中proc和lambda的两个区别,本文讲解了在proc和lambda中,return关键字有不同含义、检查参数的方式不同两个重要区别,需要的朋友可以参考下
在规则引擎中,Ruby 的闭包使用特别频繁,而且有 block,Proc和 lambda 等后几种形式的用法,很让人困惑。为了深入理解代码,再次认真学习了一下 Ruby 的闭包,特别是 block,proc 和 lambda 几种用法的异同,这次的...
Python用于支持将函数赋值给变量的一个操作符 默认是返回的,所以不用再加return关键字,不然会报错 result = lambda x: x * x result(2) # return 4 map()/filter()/reduce() 需要两个参数,第一个是一个处理函数,第...
该库在 Ruby 1.8.7 及更高版本上进行了测试,但受益于 Ruby 1.9 的哈希和 lambda 文字语法。 "truthy" . if -> { "I'm true!" } , else : -> { "I'm false!" } # vs. "truthy" . if proc { "I'm true!" } , :else ...