文档章节

Scala学习笔记(1):Scala语言的来源

chengyao2
 chengyao2
发布于 2013/04/28 20:50
字数 535
阅读 685
收藏 6

Scala是“scalable language”,也就是“可扩展”语言是意思。Scala是一种静态类型语言,它融合了函数式编程和面向对象编程和的思想,前者让它可以很方便快速地构建可用程序,后者则让其具有构建大型可扩展系统的能力,而两者的融合体现在:在Scala中函数是一种特殊的对象,而Scala的对象也支持很多函数式编程特性,例如Pattern Matching。

关于Scala语言的来源,语言的发明人Ecole Polytechnique Fédérale de Lausanne (EPFL)的教授Martin Odersky,在一次专访中有如下描述:

“1988/1989年我在Zurich,我喜欢上了函数式编程...Phil Wadler告诉我有一门新的语言Java就要诞生。我们决定把函数式编程的一些东西移植到Java中去,这个尝试诞生了Pizza语言,它具有泛型,高阶函数和模式匹配等功能,证明了jvm能够支持函数式编程的特性。后来Sun找到我们说对我们实现的泛型有兴趣,于是我们就参与到Java泛型模块的开发中,最终在Java5中发布”

“在Pizza和Java泛型项目中我经常感到沮丧,Java语言有很多限制让我不能按照自己的想法来做一些事...我决定开始设计一些在Java中不太可能实现的东西,当然我又想能够利用现有的Java类库和工具。”

“我决定虽然我要设计一个跟Java不太一样的语言,但是它必须能够嵌入到JVM以及Java现有的库...最初我们开发了一个叫Funnel的基于join calculus的语言,但是它太过于纯粹以至于无法实际应用...我们决定从头再来,并将语言设计在介于Funnel和Java之间,它必须更具有实用性,但是同时比Java所能做的更高级。在2003年我们发布了这个语言,这就是Scala”

参考文献:http://www.artima.com/scalazine/articles/origins_of_scala.html

© 著作权归作者所有

共有 人打赏支持
chengyao2
粉丝 32
博文 10
码字总数 6839
作品 0
浦东
程序员
Scala学习笔记-基础语法

Scala学习笔记-基础语法 OneCoder2016-09-2046 阅读 Scala 上手学习Scala语言。先熟悉一下语法。对于Scala笔者也是完全的新手,对scala的设计思想和实现原理没有太多了解。错误在所难免,还望...

OneCoder
2016/09/20
0
0
Scala 学习笔记 模式匹配

1. 模式匹配简介 模式匹配是 Scala 的重要特性之一,前面两篇笔记Scala学习笔记(六) Scala的偏函数和偏应用函数、Scala学习笔记(七) Sealed Class 和 Enumeration都是为了这一篇而铺垫准备的...

Tony沈哲
2017/05/16
0
0
Scala学习笔记 - 函数

Scala学习笔记 - 函数 OneCoder2016-09-2157 阅读 Scala Scala做为支持函数式编程的语言,函数自然是其核心的特性,因此笔者对函数部分的学习自然会更加认真细致一些。但也仅仅是基础部分。 ...

OneCoder
2016/09/21
0
0
scala学习笔记

1.lazy 惰性计算 惰性 求值 特别用于 函数式编程语言 中。在使用延迟求值的时候,表达式不在它被绑定到变量之后就立即求值,而是在该值被取用的时候求值 。 除可以得到性能的提升外,惰性计算...

cjun1990
2015/09/10
89
0
zeppelin入门介绍视频

Zeppelin 1. 缘起 各位朋友们,有一段时间没有更新内容。因为最近一直也比较忙,有些计划也就搁置了。 最近在非技术领域有一些感悟,也有一些收获,因此发起做些视频教程的心。 这是我录制的...

云戒
2017/08/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

中秋快乐!!!

HiBlock
36分钟前
1
0
Node安装教程

1、安装最新版的node 2、设置相关目录(以D盘为例) 分别建立目录:D:\node,D:\node\node-globa,D:\node\node-cache 命令行输入: // 设置npm国内镜像 npm config set registry https://re...

Mohan710
今天
3
0
中国发布域名系统基础软件 “红枫”

9月12日消息,域名工程中心(英文缩写 ZDNS)发布了宣称自主开发的域名系统基础软件 “红枫(Maple DNS)”。 9月12日消息,域名工程中心(英文缩写 ZDNS)发布了宣称自主开发的域名系统基础软...

问题终结者
今天
3
0
Shell编程(分发系统介绍、expect远程登录、expect远程执行命令、expect传递参数)

分发系统介绍expect 分发系统expect即分发脚本,是一种脚本语言;通过他可以实现传输,输入命令(上线代码) 应用场景:业务越来越大,网站app,后端,编程语言是php,所以就需要配置lamp或者...

蛋黄_Yolks
今天
4
0
Java Http请求工具类

public static String httpPost(String source, String params) {URL url = null;HttpURLConnection conn = null;OutputStream os = null;String ret = null;try {......

yuewawa
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部