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 1.9中的Lambda函数详解》 Ruby语言的一大魅力在于其Block功能,它使得编写简洁、可复用的算法变得轻而易举,甚至让人们对循环的畏惧感大大降低。Block在其他编程语言中被称为Lambda函数或匿名函数,有时也被...
3. **块语法改进**:Ruby 1.9允许块使用`&`操作符转换为 Proc 对象,使块可以被赋值给变量并存储起来,增强了代码复用性。同时,`do..end`块与单行块的语法更加一致。 4. **元编程增强**:Ruby 1.9增强了元编程能力...
《Programming Ruby 1.9 The Pragmatic Programmers' Guide》是学习Ruby编程语言的一本经典著作,尤其针对Ruby 1.9版本进行了详细的讲解。这本书由著名的Pragmatic Programmers出版,因其深入浅出的讲解和实用的编程...
《Programming Ruby 1.9》是一本经典的Ruby编程语言教程,其源代码包含了大量实例和示例,旨在帮助读者深入理解Ruby的语法、特性以及编程实践。这些源代码是学习和探索Ruby语言的重要资源,涵盖了从基础语法到高级...
《Ruby程序设计语言》是Ruby的权威指南,全面涵盖该语言的1.8版和1.9版。本书详尽但并不拘泥于语言规范,既适合首次... 表达式和操作符 语句和控制结构 Method、proc、lambda和closure 类和模块 反射和元编程
3. **块、proc和lambda**:这些是Ruby中实现函数式编程的关键,用于定义可复用的代码片段,并可以在适当的地方传递。 4. **元编程**:Ruby允许在运行时修改自身,这是其强大之处。书中会介绍如何利用`class_eval`、...
通过以上的讨论和实践,我们可以理解如何在Ruby这种高级编程语言中实现Lambda演算的基本操作,这对于理解计算理论和函数式编程有着重要的意义。同时,这种模拟也有助于加深对Ruby语言特性的理解,比如一等函数、闭包...
此回购展示了如何包括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 具有巨大的潜在意义和有趣的含义 !?通过:将一...
例如,`Where`操作符通常配合lambda表达式用于过滤序列中的元素,`Select`则用于映射或投影序列。 **4. 实际应用示例** 在实际编程中,开发者可以组合使用这些操作符来执行复杂的数据查询和处理。例如,可以先用`...
在对Ruby进行了简要的综述之后,《Ruby编程语言》详细介绍了以下内容:Ruby的句法和语法结构,数据结构和对象,表达式和操作符,语句和控制结构,方法、proc、lambda和闭包,反射和元编程,Ruby平台。本书还包含对...
例如,可以利用 Lambda 表达式对集合进行排序、过滤、映射、收集等操作,并且可以轻松实现并行处理。而在多线程编程中,Lambda 表达式可以减少代码量,提高代码的可维护性。 在 Java 8 中,Lambda 表达式和 Stream ...
所有的 Lambda 表达式都使用操作符“=>“,表示“goes to (转变为)”。 Lambda 表达式简介 Lambda 表达式是一个包含若干表达式和语句的匿名函数。可以被用作创建委托对象或表达式树类型。所有的 Lambda 表达式都...
Ruby 1.9 引入了更严格的 lambda,其行为更接近函数,有助于减少潜在的副作用。 7. 其他特点还包括: - 易于阅读的语法:Ruby 的语法简洁且直观,使得代码更易于理解和维护。 - 响应式编程支持:Ruby 支持事件...
Lambda表达式不能作为`is`和`as`操作符的左侧,也不能在不安全的上下文中使用。 7. **与匿名方法的比较** Lambda表达式相比于匿名方法更简洁,因为它们不需要`delegate`关键字和花括号(对于单行Lambda)。同时,...
7. **JEP 208:Lambda参数名称**:编译后的lambda表达式现在保留源代码中的参数名称,有助于调试和理解代码。 8. **JEP 223:增强的G1垃圾收集器(G1 Ergonomics Improvements)**:G1垃圾收集器的性能得到了提升,...
ruby-vips-lambda:适用于Ruby Libvips Gem的AWS Lambda层
Ruby 200 版本可能是在 Ruby 1.9.x 系列之后的一个更新,它可能引入了一些改进和修复。不过,由于没有具体的描述,我们无法详细列出这个特定版本的所有变更。通常,版本更新会涉及性能优化、错误修复、新功能添加...