codecamp

介绍

2012年秋天,超过五万人注册了 Martin Odersky 先生在 Coursera 上开设的Functional Programming Principles in Scala 课程。这是一个巨大的数字。这些人可能是第一次接触 Scala、函数式编程,甚至两者都是。2013年,这个课程又开放了,并将更多的学生和开发者引入了 Scala 和函数式编程的世界。

如果你正在看这篇文章,很可能你也是其中之一,或者已经开始通过其他方式学习 Scala 了。不管什么方式,如果你对探索这门优美的语言感到兴奋,而又不知道该如何去学,那这本书就是为你准备的。

尽管 Coursera 上的这门课程已经提供了很多材料来让你认识和了解 Scala,但其时间有限,很难把所有东西一一解释清楚,对于初学者的你来说,Scala的一些特性看起来就像魔法一样。可能你知道如何使用它们,但无法完全掌握它们背后的原理,更重要的是,你无法了解为什么这样做它们就可以工作。

自从这门课程的第一次开设开始,我就开始了一系列博客的撰写,意在把事情理清楚,移除初学者心中的问号。这份电子书就基于这一系列博客。鉴于超多人都给出了正面评价,我决定把所有文章编译成书。

在这本书里,我会解释Scala语言的一些特性。学习这门语言时,我在这些特性上遇到了麻烦。部分原因是找不到有关这些特性的好的解释,只能摸石头过河。在适当的时候,我也会给出这些特性的惯例用法。

介绍的已经差不多了。在开始这本书之前,读者要知道,虽然并不要求参与过 Coursera 上的那门课程,但是如果读者在该课程上对 Scala 有了粗略的了解,那绝对有利于本书的阅读,而且我时不时会引用课程上的一些知识点。

前言
提取器
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }