`

Ruby复合函数

    博客分类:
  • Ruby
阅读更多
复合函数的意思就是:
有函数:
f(x)=x + 1;
g(x)=x * x
则g(f(x)) = (x + 1) * (x + 1)
我们给Ruby的打开Proc类:
class Proc
  def self.compose(f, g)
    lambda { |*args| f[g[*args]] }
  end
  def *(g)
    Proc.compose(self, g)
  end
end

inc = lambda { |x| x + 1 }
square = lambda{ |x| x * x}

square_inc = square * inc
square_inc(2) #=> 9
分享到:
评论

相关推荐

    learning-ruby.

    此外,Ruby还有数组(Array)和哈希(Hash)等复合数据类型。 2. **控制结构**:Ruby中的控制结构包括条件语句(如if/else,case/when)、循环(如for,while,until,each)以及流程控制语句(如break, next, ...

    Ruby In a Nutshell

    - Ruby中的函数定义使用`def`关键字,可以接收参数,并支持默认值、可变数量的参数和块参数。 - 方法调用可以使用点操作符或括号,根据上下文自动推断。 4. **类和对象** - Ruby是纯面向对象的语言,一切皆为...

    ruby使用文档

    - Ruby中函数和方法是一致的概念,使用`def`定义,`end`结束。 - 可以定义默认参数、可变参数(`*args`)和关键字参数。 - 方法可以通过`yield`调用块,实现类似闭包的功能。 4. **类与模块**: - 类是面向对象...

    Ruby语言入门教程(附源码文件)

    Ruby支持多种数据类型,包括整型、浮点型、字符串、布尔型、符号(symbol)以及数组、哈希等复合类型。变量标识符通常以`$`、`@`或``开头,分别代表全局变量、实例变量和局部变量。 2. **控制结构** - 条件语句:`...

    Ruby 语法. Ruby 是一种开源的面向对象程序设计的服务器端脚本语言

    - **函数定义**:Ruby 中使用 `def` 关键字定义函数,并可以接受任意数量的参数。 - **类与对象**:Ruby 中类的定义使用 `class` 关键字,对象是类的实例。 - **模块与继承**:Ruby 支持模块(Module)的使用,以及单...

    Ruby语言中文教程

    本教程旨在为初学者提供全面的Ruby语言学习指南,包括基础语法、面向对象编程概念、控制结构、数据类型、函数、类和模块等多个方面。 在Ruby中,语言的核心特性之一是它的动态性。这意味着变量的类型在运行时确定,...

    Ruby语言入门教程v1.0

    - 函数式编程:Ruby也支持函数式编程特性,如闭包和高阶函数。 **第二章:基础语法和数据类型** 这一章将详细介绍Ruby的基础语法,包括变量、常量、运算符、控制结构以及数据类型。 2.1 **变量和常量** - Ruby...

    Ruby语言教程.docx

    它支持多种编程范式,包括函数式编程和元编程。 - **应用场景**:广泛应用于Web开发、服务器端编程、脚本编写、自动化测试等领域。 #### 二、Ruby环境搭建 - **官网地址**:https://www.ruby-lang.org - **安装过程...

    ruby 程序设计

    - **概念**:代码块是Ruby中的一种匿名函数,可以在方法中传递和执行。 - **示例**:`[1, 2, 3].each { |x| puts x }` ##### §5.2 迭代器(Iterator) - **概念**:迭代器是一种特殊的代码块,用于遍历集合中的元素...

    RUBY基础入门指南

    - **灵活的语法**:支持多种编程风格,如函数式编程和过程式编程。 **1.4 Ruby和Python的比较** - **语法风格**:两者都强调简洁明了的语法,但Ruby更倾向于使用符号而非关键字。 - **面向对象**:Ruby是纯粹的...

    ruby初级中文教程与实例

    4. 函数和方法:Ruby中的函数定义使用`def`关键字,可以接受参数并返回值。方法是Ruby的核心特性,它们允许代码重用和模块化。 二、面向对象编程 1. 类和对象:Ruby是面向对象的语言,所有的一切都是对象。类用于...

    ruby语言基础

    3. **函数与方法**:Ruby中的函数称为方法,可以定义在类、模块或全局作用域中。方法调用使用`.`操作符,支持块(block)和 Proc 对象。 4. **面向对象编程(OOP)**:Ruby是一种纯面向对象的语言,一切皆为对象。...

    Ruby基础教程

    Ruby支持多种数据类型,包括整数(Integer)、浮点数(Float)、字符串(String)、布尔值(Boolean)以及数组(Array)、哈希(Hash)等复合类型。 在Ruby中,一切都是对象,即使是基本的数据类型也有方法。这使得...

    Ruby on Rails Bible.pdf

    本章将从语法层面介绍Ruby语言的核心特性,如控制流语句、函数定义、类与对象的概念等。此外,还将涵盖一些高级主题,比如元编程技术、模块与混合(mixins)的使用等。 ### 第5章:一个工作样本 通过一个完整的...

    Ruby入门教程

    - **灵活性**:Ruby支持多种编程范式,如函数式编程、面向对象编程等。 - **可扩展性**:Ruby易于扩展,并且有大量的第三方库可供使用。 **1.4 Ruby和Python的比较** 尽管两者都属于高级动态语言,但它们在语法、...

    ruby-exercism:一些锻炼Ruby挑战

    同时,Ruby也支持数组、哈希(字典)等复合数据结构。 2. **控制流**:掌握条件语句(如if/else,case)和循环(如for,while,until,each)是编写任何程序的基础。Ruby中的块(block)和 Proc/Lambda 的使用也是...

    ruby_base

    3. **函数与方法**:Ruby中的函数被称为方法,可以通过定义`def`关键字来创建。方法可以有参数,并能通过`return`关键字返回值。 4. **类与对象**:Ruby是面向对象的语言,类是用来创建对象的模板,对象是类的实例...

Global site tag (gtag.js) - Google Analytics