`

Ruby1.9 lambda操作符

    博客分类:
  • Ruby
阅读更多
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 1.9中的Lambda函数详解》 Ruby语言的一大魅力在于其Block功能,它使得编写简洁、可复用的算法变得轻而易举,甚至让人们对循环的畏惧感大大降低。Block在其他编程语言中被称为Lambda函数或匿名函数,有时也被...

    Programming Ruby 1.9

    3. **块语法改进**:Ruby 1.9允许块使用`&`操作符转换为 Proc 对象,使块可以被赋值给变量并存储起来,增强了代码复用性。同时,`do..end`块与单行块的语法更加一致。 4. **元编程增强**:Ruby 1.9增强了元编程能力...

    Programming Ruby 1.9 The Pragmatic Programmers' Guide

    《Programming Ruby 1.9 The Pragmatic Programmers' Guide》是学习Ruby编程语言的一本经典著作,尤其针对Ruby 1.9版本进行了详细的讲解。这本书由著名的Pragmatic Programmers出版,因其深入浅出的讲解和实用的编程...

    Programming-Ruby-1.9源代码

    《Programming Ruby 1.9》是一本经典的Ruby编程语言教程,其源代码包含了大量实例和示例,旨在帮助读者深入理解Ruby的语法、特性以及编程实践。这些源代码是学习和探索Ruby语言的重要资源,涵盖了从基础语法到高级...

    Ruby程序设计语言 (涵盖Ruby 1.8和1.9)源代码

    《Ruby程序设计语言》是Ruby的权威指南,全面涵盖该语言的1.8版和1.9版。本书详尽但并不拘泥于语言规范,既适合首次... 表达式和操作符  语句和控制结构  Method、proc、lambda和closure  类和模块  反射和元编程

    Pragmatic.rogramming.Ruby.1.9.and.2.0.4th.Edition.pdf

    3. **块、proc和lambda**:这些是Ruby中实现函数式编程的关键,用于定义可复用的代码片段,并可以在适当的地方传递。 4. **元编程**:Ruby允许在运行时修改自身,这是其强大之处。书中会介绍如何利用`class_eval`、...

    如何利用Ruby简单模拟Lambda演算详解

    通过以上的讨论和实践,我们可以理解如何在Ruby这种高级编程语言中实现Lambda演算的基本操作,这对于理解计算理论和函数式编程有着重要的意义。同时,这种模拟也有助于加深对Ruby语言特性的理解,比如一等函数、闭包...

    aws-ruby-lambda-layer:包括普通Ruby宝石的一层

    此回购展示了如何包括Ruby原生宝石 注意力 直接在aws lambda中使用api通常是一种不好的做法。 因为它将很快消耗过多的连接。 如何使用 建立档案 $ ./build.sh 部署到aws $ sls deploy 然后查看并配置您的lambda以...

    Ruby编程语言pdf

    在对Ruby进行了简要的综述之后,本书详细介绍了以下内容:Ruby的句法和语法结构,数据结构和对象,表达式和操作符,语句和控制结构,方法、proc、lambda和闭包,反射和元编程,Ruby平台。 本书还包含对Ruby平台上...

    ruby-on-lambda, 自动化脚本,帮助运行 ruby 2.1程序.zip

    ruby-on-lambda, 自动化脚本,帮助运行 ruby 2.1程序 上的 ruby为什么?因为:AWS的Lambda具有巨大的潜在意义和有趣的含义AWS的Lambda还没有正式支持 ruby,因为ruby 具有巨大的潜在意义和有趣的含义 !?通过:将一...

    LINQ 的标准查询操作符

    例如,`Where`操作符通常配合lambda表达式用于过滤序列中的元素,`Select`则用于映射或投影序列。 **4. 实际应用示例** 在实际编程中,开发者可以组合使用这些操作符来执行复杂的数据查询和处理。例如,可以先用`...

    Ruby编程语言

    在对Ruby进行了简要的综述之后,《Ruby编程语言》详细介绍了以下内容:Ruby的句法和语法结构,数据结构和对象,表达式和操作符,语句和控制结构,方法、proc、lambda和闭包,反射和元编程,Ruby平台。本书还包含对...

    jdk1.8 Lambda表达式

    例如,可以利用 Lambda 表达式对集合进行排序、过滤、映射、收集等操作,并且可以轻松实现并行处理。而在多线程编程中,Lambda 表达式可以减少代码量,提高代码的可维护性。 在 Java 8 中,Lambda 表达式和 Stream ...

    C#lambda表达式的使用

    所有的 Lambda 表达式都使用操作符“=>“,表示“goes to (转变为)”。 Lambda 表达式简介 Lambda 表达式是一个包含若干表达式和语句的匿名函数。可以被用作创建委托对象或表达式树类型。所有的 Lambda 表达式都...

    Ruby语言令人喜爱的十大特点

    Ruby 1.9 引入了更严格的 lambda,其行为更接近函数,有助于减少潜在的副作用。 7. 其他特点还包括: - 易于阅读的语法:Ruby 的语法简洁且直观,使得代码更易于理解和维护。 - 响应式编程支持:Ruby 支持事件...

    Lambda教程

    Lambda表达式不能作为`is`和`as`操作符的左侧,也不能在不安全的上下文中使用。 7. **与匿名方法的比较** Lambda表达式相比于匿名方法更简洁,因为它们不需要`delegate`关键字和花括号(对于单行Lambda)。同时,...

    JDK1.9谷歌翻译文档

    7. **JEP 208:Lambda参数名称**:编译后的lambda表达式现在保留源代码中的参数名称,有助于调试和理解代码。 8. **JEP 223:增强的G1垃圾收集器(G1 Ergonomics Improvements)**:G1垃圾收集器的性能得到了提升,...

    ruby-vips-lambda:适用于Ruby Libvips Gem的AWS Lambda层

    ruby-vips-lambda:适用于Ruby Libvips Gem的AWS Lambda层

    Ruby200

    Ruby 200 版本可能是在 Ruby 1.9.x 系列之后的一个更新,它可能引入了一些改进和修复。不过,由于没有具体的描述,我们无法详细列出这个特定版本的所有变更。通常,版本更新会涉及性能优化、错误修复、新功能添加...

Global site tag (gtag.js) - Google Analytics