`
cakin24
  • 浏览: 1388484 次
  • 性别: 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 那么我们应用的时候,...

    scala sdk scala-2.12.3

    同时,Scala还提供了函数式编程的关键概念,如高阶函数、闭包和柯里化。 10. **Actor模型**:Akka库是Scala中的并发和分布式计算框架,基于Actor模型,使得编写高性能、容错的应用程序变得简单。 11. **Dotty/...

    scala实战高清讲解

    - 柯里化:Scala支持柯里化,即将接受多个参数的函数转化为一系列接受一个参数的函数,增强了函数的灵活性。 - 纯函数:纯函数没有副作用,只依赖于输入参数,不改变外部状态,有助于写出可预测且易于测试的代码。...

    scala2.12.1Windows镜像包

    并支持高阶函数、柯里化、闭包等概念。 - **模式匹配**:强大的模式匹配机制,用于解构复杂数据结构。 - ** Actors模型**:Scala内置对Akka框架的支持,允许并发编程时使用Actors模型,简化了并发控制。 2. **...

    scala-2.12.10.zip

    Scala的语法优雅且富有表达力,它允许开发者使用函数式编程的特性,如高阶函数、柯里化、模式匹配和不可变数据结构,同时保留了面向对象的类、接口和继承。这使得Scala成为处理大数据、并发和分布式计算的理想选择,...

    Scala考试题1

    - 柯里化是将接受多个参数的函数转换为一系列只接受一个参数的函数的过程。 13. **模式匹配与 Java switch-case 的不同**: - Scala 的模式匹配更强大,支持值匹配、类型匹配、提取器对象等,而 Java 的 switch-...

    spark源码之scala基础语法demo

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

    1、scala面试题(25问).pdf

    柯里化是Scala语言中的一种函数式编程技巧,将原来接受两个参数的函数变成新的接受一个参数的函数的过程。 4. 模式匹配 Scala语言中的模式匹配包括了一系列的备选项,每个替代项以关键字大写为单位,每个替代方案...

    学习scala好的项目

    此外,可能会涉及到的高级主题包括Akka(一个用于构建高度并发、分布式的应用程序的框架),以及Scala的函数式编程特性,如高阶函数、柯里化、闭包和Monad。对于想要深入了解Scala的人来说,这些内容是必不可少的。 ...

    scala-2.12.6.tgz

    它支持高阶函数、柯里化、尾递归优化和不可变数据结构,这些都是函数式编程的核心概念。 9. 特性与模式: Scala还引入了一些独特的语言特性,如特质(Traits)、隐式转换和case类,这些帮助开发者实现更简洁、更具...

    scala-2.12.14.zip&scala-2.12.11.tgz Linux版本压缩包.rar

    3. **函数式编程**:支持高阶函数、柯里化、尾递归优化等特性,使得代码简洁且易于测试。 4. ** Actors模型**:提供了一种轻量级的并发机制,用于实现高效的并行和分布式计算。 5. **集合库**:Scala的集合库强大且...

    Scala-2.11.1.zip

    3. **函数式编程**:Scala是函数式编程的强大平台,它提供了高阶函数、匿名函数、柯里化、尾递归优化等功能。函数在Scala中被视为一等公民,可以作为参数传递,也可以作为返回值。 4. **集合库**:Scala的集合库是...

    Scala_day01_scala_

    Scala支持柯里化,这在编写高阶函数时特别有用。文档可能包含关于柯里化的实例。 最后,Scala可以无缝集成Java库,因为它运行在JVM上。这意味着你可以使用大量的Java库,并将它们与Scala代码混合使用,这对于迁移到...

    Scala编程.zip

    Scala语法简洁且富有表现力,它支持函数式编程的特性,如高阶函数、柯里化、不可变数据结构以及模式匹配。此外,它还具备面向对象编程的特性,如类、接口和继承。 在机器学习方面,Scala提供了丰富的库,如Breeze...

    scala-2.11.7 包

    Scala还支持高阶函数、类型推断、柯里化、不可变数据结构等特性,这些都是函数式编程的核心元素。此外,它可以与Java代码无缝集成,这意味着你可以利用已有的Java库和框架。 总的来说,Scala-2.11.7提供了一个强大...

    Scala最新官方下载包(官方的下载真的慢)

    3. **函数式编程**:Scala是函数式编程的强大平台,支持高阶函数、不可变数据结构和柯里化。函数可以作为一等公民,即函数可以赋值给变量,作为参数传递,也可以作为返回值。 4. **模式匹配**:Scala提供了强大的...

    快学Scala完整版&Scala编程(中文版)&Scala程序设计-多线程编程实践

    《Scala编程》的中文版则可能是对Scala语言的全面解析,不仅包括基础语法,还可能涵盖高级特性如类型推断、类型类、隐式转换、柯里化、不可变数据结构等。此外,这本书可能还会讨论Scala与其他技术的集成,如与...

    Functional Programming Principles in Scala Assignments Week2

    这门课的第二周作业,不仅涵盖了基本的Scala语法,还深入探讨了函数式编程的核心概念,如高阶函数、闭包、柯里化以及模式匹配等。本文将详细解析这些关键知识点,并通过具体的代码工程和题目来加深理解。 一、高阶...

Global site tag (gtag.js) - Google Analytics