博客专栏  >  编程语言   >  Scala编程实例

Scala编程实例

Scala编程实例专题通过Scala实际编程例子来学习Scala核心概念,练习Scala编程技巧

关注
30 已关注
19篇博文
  • 【函数式】纯函数与替代模型

    纯函数一个函数在程序执行的过程中除了根据输入参数给出运算结果之外没有其他的副作用影响,我们可以把这类函数称为“纯函数”。纯函数由于不依赖外部变量,使得给定函数输入其返回结果永远不变,比如整数的加法函数...

    2016-05-27 11:07
    1313
  • 【Scala】Vector内部结构与内存共享原理

    Scala不可变集合Scala不可变集合的设计目标是提供高效又安全的实现。这些集合中的大部分都是用高级技巧来在集合的不同版本之间“共享”内存。其中较长使用到的是Vector和List。 在一般的编程...

    2016-05-11 20:48
    5067
  • 【Scala-ML】使用Scala构建机器学习工作流

    引言在这一小节中,我将介绍基于数据(函数式)的方法来构建数据应用。这里会介绍monadic设计来创建动态工作流,利用依赖注入这样的高级函数式特性来构建轻便的计算工作流。建模过程在统计学和概率论中,一个...

    2016-03-19 20:34
    3518
  • 【Scala-ML】如何利用Scala构建并行机器学习系统

    引言在学习Scala的过程中,我发现其在构建大规模分布式计算系统上有与生俱来的特质。其丰富的类型系统可以帮助编程设计提供很好的信息隐藏和抽象,其monoids和monads概念利用Scala高阶函数实...

    2016-03-19 20:33
    2993
  • 【Scala类型系统】自身类型(self type)引用

    定义特质可以要求混入它的类扩展自另一个类型,但是当使用自身类型(self type)的声明来定义特质时(this: ClassName =>),这样的特质只能被混入给定类型的子类当中。 如果尝试将该...

    2016-03-17 22:38
    2333
  • 【Scala】Cake模式和依赖注入

    依赖注入(Dependency Injection)和控制反转(Inversion of Control)Dependency Injection & Inversion of Control是Mar...

    2016-03-11 22:06
    2128
  • 【Scala】抽取器

    引子由于样本类和构造器模式相关联,所以在模式匹配中常使用样本类做数据的解构和分析。 有些情况下,或许希望能够在不创建关联的样本类的前提下编写出类似的模式匹配,此时抽取器(Extractor)可以用来...

    2016-03-10 17:12
    1700
  • 【函数式】Monads模式初探——for解析式

    for表达式是monad语法糖先看一组示例:case class Person(name: String, isMale: Boolean, children: Person*)val lara = ...

    2016-03-05 21:15
    1340
  • 【函数式】Monads模式初探——Option Monad

    Option MonadScala中的Option是一个Monad实现。 Option的简化版定义如下:sealed abstract class Option[+A] { def isEmpt...

    2016-03-05 21:14
    1089
  • 【函数式】Monads模式初探——Monad概念

    单子单子(Monad)是一种将函子组合应用的方法。在计算机科学里,单子经常用来代表计算(computation)。单子能用来把与业务无关的通用程序行为抽象出来,比如有用来处理并行(Future)、异常...

    2016-03-05 21:14
    2829
  • 【函数式】Monads模式初探——Endofunctor

    自函子自函子(Endofunctor)是一个将范畴映射到自身的函子(A functor that maps a category to itself)。函子是将一个范畴转换到另一个范畴,所以自函子是一...

    2016-03-01 10:53
    1024
  • 【函数式】Monads模式初探——Functor

    函子与范畴函子(functor)是从一个范畴到另一个范畴的转换,并且其亦可转换/保持态射(morphism)。 一个态射是从一个范畴里的一个值到同一个范畴里的另一个值的变换。在猫的范畴的例子里,一个...

    2016-02-29 21:33
    1260
  • 【函数式】Monads模式初探——Monoids

    Monads是什么知乎里有关于什么是Monad的问题讨论,而在维基百科中也有关于Monad的释义。作为初次接触到Monads概念,难免会有些晕头转向,也难免会有些畏惧(因为Monads和数学中的范畴论...

    2016-02-28 21:36
    1750
  • 【Scala类型系统】隐式转换与隐式参数

    隐式转换隐式转换是使用implicit修饰的带有单个参数的普通函数。这种函数将自动应用,将值从一种类型转换为另一种类型。 举例说明: 我们想将整数n转换为分数n/1, 定义implicit...

    2016-02-27 21:35
    1067
  • 【Scala类型系统】函数式Queue的简易实现

    实现一个函数式Queue泛型类函数式队列是一种具有以下三种操作方式的数据结构: head 返回队列的第一个元素 tail 返回除第一个元素之外的队列 append 返回尾部添...

    2016-02-27 21:34
    891
  • 【Scala类型系统】类型参数化和变化型注解

    引言类型参数化(Parameterized Types)可以用来编写泛型类和特质,比如定义Set[T],这使得我们可以创建诸如Set[String]的类型。而变化型注解(Variance Annota...

    2016-02-27 21:33
    1608
  • 【Scala】尾递归优化

    以递归方式思考递归通过灵巧的函数定义,告诉计算机做什么。在函数式编程中,随处可见递归思想的运用。 下面给出几个递归函数的例子:object RecursiveExample extends App{...

    2016-01-15 20:30
    2885
  • 【Scala编程】格式化算术表达式程序

    格式化算术表达式程序为了练习模式匹配的使用,该博文介绍编写格式化算术表达式的程序,最终的呈现结果如下面这个二维布局的数学表达式所示,这里除法运算被垂直打印出来:1 - * (x +...

    2015-06-28 21:54
    1532
  • 【Scala编程】函数式风格编写排序算法

    有关Scala编程实例在刚开始学习一门编程语言的时候,总是想去写一些比较大的程序和项目,但是由于基础不扎实,往往欲速则不达。所以,只能一步一步来,通过一些经典的小例子来实践和锻炼,最终不断加深编程的技...

    2015-06-22 21:14
    1725

img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部