慢品Scala 0

品味一种精心设计的编程语言,就像品茶。

Scala这杯茶混合了很多味道:结构化编程(while,for,if),面向对象,函数式编程,命令式编程,像脚本一样运行,像做企业级项目一样模块化,有延迟计算,有立即计算,有val,有var。所有的特性凝聚成一个单词: scalable. 众多两极化的特性彼此相依,如阴阳互生。我不是Scala语言的设计师,但是,如果我是,我肯定会从中庸的哲学角度出发设计这个语言,不让它的特性偏颇到任意方。这正是最难的,正是可伸展但不分裂的秘密所在。0和1只所以能做为计算机世界的基础,是因为它们是最小的不可再分的两极。

最底层的东西和最高层的东西有类似的结构,这是大自然的规律。像scala这样的和计算机底层对话的语言必将产生,这是谁都无法抗拒的自然规律。只不过Martin首先感觉到:是时候该有这样一门语言了。这就像当年机器语言之后产生汇编,汇编之后产生C,C之后产生C++,C++之后产生Java一样自然。如果Scala的团队没有正确地把握住这个方向,Scala也只会流行一时。

很久很久之前,人类没有火,后来会用火了。人给人类社会带来了巨变。

就在几年前,人类还没有Spark,后来Spark在实验室产生。然后Spark很自然地选择了Scala做为其实现语言(Spark和Scala的思想很多地方都是不谋而合的,所以说很自然,比如:交互式命令行,map,flatMap,filter函数)。Spark和Scala会给人类社会带来火一样的影响吗? 这是最激动人心的问题。

时间: 2024-08-03 04:25:16

慢品Scala 0的相关文章

慢品Scala 1 自定义控制结构

常见的控制结构有if, for, while. 控制结构上函数吗? 函数是控制结构吗? 在CPU层面,都是些跳转语句. 在其它语言中,控制语句是更基础的.函数由控制语句组成. 在Scala中,函数是更基础的,利用函数创建的闭包可以实现一切控制结构. (闭包是个很大的话题,一言以蔽之:闭包可以说我们看到风的痕迹) while表达式的实现      def wh(p: => Boolean) (s: => Unit) {     if (p) {s; wh(p)(s)}   }      var 

第28讲:Scala提取器Extractor实战详解

提取器是从表达式中获取值 第27讲中的match代码也是一种提取器     def match_array(arr : Any) = arr match {       case Array(x) => println("Array(1):",x) // 长度为1的数组,x代表数组中的值       case Array(x,y) =>  println("Array(2):",x,y) // 长度为2的数组,x代表数组中的第一个值       case

【转】Scala:fold,foldLeft和foldRight区别与联系

原文链接  http://www.iteblog.com/archives/1228 从本质上说,fold函数将一种格式的输入数据转化成另外一种格式返回. fold, foldLeft和foldRight这三个函数除了有一点点不同外,做的事情差不多. 我将在下文解释它们的共同点并解释它们的不同点. 我将从一个简单的例子开始,用fold计算一系列整型的和. 1 val numbers = List(5, 4, 8, 6, 2) 2 numbers.fold(0) { (z, i) => 3   z

Scala深入浅出实战经典之 List的foldLeft、foldRight、sort操作代码实战

Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 腾讯微云:http://url.cn/TnGbdC 360云盘:http://yunpan.cn/cQ4c2UALDjSKy   访问密码 45e2 以下为第37讲List的foldLeft.foldRight.sort操作代码实战 package com.parllay.scala.dataset /** * Created by richard on

Beginning Scala study note(6) Scala Collections

Scala's object-oriented collections support mutable and immutable type hierarchies. Also support functional higher-order operations such as map, filter, and reduce that let you use expression-oriented programming in collections. Higher-order operatio

大数据Spark学习:Scala基础第一课

计划: 阶段1: 精通Spark内核 阶段2: 精通千万级的项目 阶段3: 机器学习 JAVA本身不是伟大的语言,伟大的是JVM,构件分布式平台什么的,依赖的是JVM,不一定要JAVA语言 可认为Scala是JAVA的升级语言,JAVA是支持面向对象的语言,而非纯面向对象的语言.Scala是一切皆对象, 是纯面向对象语言.面向对象结合函数式编程. 不可变变量声明val result = 10+2  不可再次赋值,分布式数据的时候,传输数据.校验数据等不想改变这个数据 可变变量var name =

【C1】scala入门

1.scala解释器 安装过程类似jdk安装,需要先安装JDK,然后下载安装scala,配置PATH环境变量. 2.在win环境使用win+R运行cmd,调出命令窗口,执行标注命令 ①scala支持Tab命令自动补全 ②scala支持类型自动判定 C:\Users\martin>scalaWelcome to Scala version 2.11.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_67).Type in expressions to

scala 基本语法_2

[[email protected] test]# scala Welcome to Scala version 2.9.3 (Java HotSpot(TM) Client VM, Java 1.7.0_67). Type in expressions to have them evaluated. Type :help for more information. scala> val oneHalf = new Rational(1, 2); <console>:7: error:

Scala入门到精通——第十三节 高阶函数

本节主要内容 高阶函数简介 Scala中的常用高阶函数 SAM转换 函数柯里化 偏函数 1. 高阶函数简介 高阶函数主要有两种:一种是将一个函数当做另外一个函数的参数(即函数参数):另外一种是返回值是函数的函数.这两种在本教程的第五节 函数与闭包中已经有所涉及,这里简单地回顾一下: (1)函数参数 //函数参数,即传入另一个函数的参数是函数 //((Int)=>String)=>String scala> def convertIntToString(f:(Int)=>String