`
cakin24
  • 浏览: 1336464 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Scala柯里化

阅读更多

一 柯里化函数

把具有多个参数的函数转换为一条函数链,每个节点上是单一参数。
柯里化(Currying)指的是将原来接受两个参数的函数变成新的接受一个参数的函数的过程。新的函数返回一个以原有第二个参数为参数的函数。
以下两个add函数定义时等价的
def add(x:Int,y:Int)=x+y
def add(x:Int)(y:int)=x+y  //Scala柯里化语法
 
二 实例
  1. object Demo_kelihuaextendsApp{
  2. def curriedAdd(a:Int)(b:Int)=a+b
  3. println(curriedAdd(2)(2))
  4. val addOne = curriedAdd(1)_
  5. println(addOne(2))
  6. val str1:String="Hello, "
  7. val str2:String="Scala!"
  8. println("str1 + str2 = "+ strcat(str1)(str2))
  9. def strcat(s1:String)(s2:String)={
  10. s1 + s2
  11. }
  12. }
 
三 运行结果
4
3
str1 + str2 = Hello, Scala!
1
0
分享到:
评论

相关推荐

    Scala 函数柯里化(Currying)

    柯里化(Currying)指的是将原来接受两个参数的函数变成新的接受一个参数的函数的过程。新的函数返回一个以原有第二个参数为参数的函数。 实例 首先我们定义一个函数: def add(x:Int,y:Int)=x+y 那么我们应用的时候,...

    spark源码之scala基础语法demo

    scala是一种基于JVM的面向对象的函数编程,scala编程相对于...2:函数式编程,柯里化函数,匿名函数,高阶函数等。 3:代码行简单。 4:支持并发控制,Actor Model机制 5:目前比较流行的kafka,spark均由scala开发。

    sjson, 具有 Scala 对象序列化功能的Scala Json.zip

    sjson, 具有 Scala 对象序列化功能的Scala Json sjson: Scala 中的透明JSON序列化sjson为 Scala 对象提供非侵入性序列化。 可以使用sjson来序列化内置类型。基本通用数据类型和你设计的任何自定义数据类型。 现在...

    Scala数据序列化Scalavro.zip

    import scala.util.{ Try, Success, Failure } // obtaining an instance of AvroType val intSeqType = AvroType[Seq[Int]] // obtaining an Avro schema for a given AvroType intSeqType.schema // obtaining ...

    scala-automation:Scala 自动化框架的核心模块

    Scala 自动化核心模块链接在分支主创建一个新的测试项目为您的项目创建一个新文件夹,以便您可以将其添加到 github 在您的项目根目录中创建一个名为“build.sbt”的文件,内容如下(保留新行,替换名称): name := ...

    Scala代码格式化插件scalariform.zip

    scalariform 是一个用来格式化 Scala 代码的 Eclipse 插件。 同时也提供了各种编辑器插件、命令行工具和开发包 标签:scalariform

    scala学习手册.zip

    Scala也是一种函数式...Scala提供了轻量级的语法用以定义匿名函数,支持高阶函数,允许嵌套多层函数,并支持柯里化 。Scala的Case Class及其内置的模式匹配相当于函数式编程语言中常用的代数类型(Algebraic Type)。

    SCALA从入门到精通个人笔记含代码

    目录如下 Scala简介&快速入门 基础语法 变量 数据类型 流程控制 操作符重载 模式匹配 函数式编程基础 函数式编程说明 函数定义/声明 ...Scala数据结构之集合 ... 柯里化函数 控制抽象 递归高级 Akka 介绍

    pushka, 带注释的纯 Scala 序列化库.zip

    pushka, 带注释的纯 Scala 序列化库 Pushka Pushka是一个没有任何运行时反射实现的序列化库。 为了达到良好的输出JSON和良好性能,它创建了。 Pushka在 Scala ( 2.10,2.11,2.12 ) 和 Scala.js. 上工作良好动机大

    Scala的List类方法整合

    详细总结Scala语言的List类封装的相关方法,具有详细的方法名及解析

    scala sdk scala-2.12.3

    scala-2.12.3 scala-2.12.3 scala-2.12.3 scala-2.12.3

    scala-sbt-scala编译工具

    scala 编译工具 sbt 安装包。 Little or no configuration required for simple projects Scala-based build definition that can use the full flexibility of Scala code Accurate incremental recompilation ...

    scala编程中文pdf

    scala编程 33章 中文pdf Scala编程实战 目录 第1章字符串. 11 第2章数值39 第3章控制结构.60 第4章类和属性.103 第5章方法147 第6章对象170 第7章包和导入.190 第8章特质200 第9章函数式编程214 第10 章集合242 第...

    Scala函数式编程

    4 多态的具体化,尤其是协变的意义所在 5 各种重载的符号使用 之前读过 programming in scala,对语言的整体还停留在: 1 scala用起来比java更灵活 2 强大的collection,可以更加方便的处理collection类的数据 ...

    Scala序列化扩展Chill.zip

    Chill 是 Scala 的扩展,用于使用 Kryo 序列化库。 标签:Chill

    Scala编程实战.zip

    此文档是讲解实战Scala,希望对喜欢大数据的同学有所帮助!!! 学习Scala语言,不仅仅意味着熟悉新的API,更重要的是一种思维方式的转变。从原有的面向对象编程(OO)到函数式编程(FP)的思想。本书面向实际的使用场景...

    bloom-filter-scala, 用于 Scala的Bloom过滤器,最快的JVM.zip

    bloom-filter-scala, 用于 Scala的Bloom过滤器,最快的JVM Scala的 Bloom filter 概述Bloom过滤器是一种空间高效的数据结构,用于测试某个元素是否是集合的成员。 false 正匹配是可能的,但 false 负数不是。 ...

    seriala:Scala 序列化

    Scala 的序列化库。 这是在实验阶段,开始作为一种尝试新的 Scala 2.10,现在更新为 Scala 2.11。 设计目标 可序列化的对象应该是常规的 Scala 类(没有注释,没有基本特征) 支持多种格式; 当前 JSON(使用 ...

    scala-compiler-2.11.8-API文档-中英对照版.zip

    赠送jar包:scala-compiler-2.11.8.jar; 赠送原API文档:scala-compiler-2.11.8-javadoc.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。

Global site tag (gtag.js) - Google Analytics