Scala 函数式编程学习视频 -- 编程元素

进到 Scala 的 REPL (Read-Eval-Print-Loop) 有两种方式,scala 或 sbt console。函数式的任务就是求值(reduction steps),Scala 把表达式和方法进行了统一,Scala 的变量和函数也应作一致性思考。Substitution Model, no side effects, λ-calculus -> immutable。 Call-by-name vs call-by-value ,是调用者还是被调用者来对参数求值的问题。val 定义值时,会做 call-by-value 操作,def 则会做 call-by-name 操作,或者可以说是静态与动态求值。

Scala Call-By-Name vs Call-By-Value

要指定函数参数 y 以 Call-By-Name 传递,要这么定义 def test(x: Int, y: => Int) = x * x,这样就避免了 test(3, 2*4) 调用时 2*4 被求值,这里把 y 转换成了函数参数 y: => Int

阅读全文 >>

类别: Scala. 标签: , . 阅读(127). 评论(0) »

Scala 函数式编程学习视频 -- 编程范式

开始真正进入 Scala 编程的世界。

范式是一个比较抽象的概念,可以理解规范和模式,此视频让我们了解编程语言范式分类。我们原来接触过指令式,过程式及一直广泛应用的面向对象式编程,面向方面不算数。Scala 让我们进入到了函数式编程,不像 Haskell, Scala 把面向对象与函数式编程很多的连接了起来。进到 Scala 的世界,一定要时常性的用函数式编程思维武装自己的头脑,并且在多核的时代尽可能的 Immutable

有狭义和广义函数式编程语言之分,狭义函数式没有变量,没有赋值操作,没有循环等指令式控制结构--代表用 Pure List, XSLT 等;广义函数式更宽松,尽量用 immutable, 函数是第一等公民,像 Scala, Clojure 等。

阅读全文 >>

类别: Scala. 标签: , . 阅读(192). 评论(0) »

Scala 函数式编程学习视频 -- 总目

Coursera 上的 Functional Programming Principle in Scala 视频教程,合成了英文字幕,应该没有多大必要性翻译成中文字幕,本人觉得大家的英语都比我强,因为它是我永久的,历史的伤口。

该课程共有七周的课时,算下来每天十至二十多分钟的时间。

开始教程

第一周:函数和求值 阅读全文 >>

类别: Scala. 标签: , . 阅读(450). 评论(0) »

Scala 函数式编程学习视频 -- 指导: 编程作业

基本上每个阶段过后都有一个不小的练习,本视频告诉我们怎么下载练习并导入到 Scala IDE,可在 SBT 下提交代码,不在 Cousera 上学习的话,也没法提交。可以从这里把那几个练习下载过来试试身手。

有兴趣的同学可以从下面的链接下载红练习项目:

example   recfun   funsets  objsets   patmat  forcomp  streams

阅读全文 >>

类别: Scala. 标签: , . 阅读(49). 评论(0) »

Scala 函数式编程学习视频 -- Windows 下工具设置

Windows 无疑还是最大众化的个人操作系统了,很少很少人在 Windows 下用 Open-JDK。

本视频示例了在 Windows 下 JDK, SBT 的安装,需要设置相关的 PATH 环境变量。以及下载安接 Scala SDK IDE (集成了 Scala SDK, Scala 插件的 Eclipse,这样就不用单独安装那三个玩意儿)。

接着在 Scala IDE 中演示了 Scala HelloWorld 程序,最后就是 Scala WorkSheet,比 Scala 命令行下的 REPL 更强大的交互式工具,比 Swift 还早的 Playground. 阅读全文 >>

类别: Scala. 标签: , . 阅读(91). 评论(0) »

Scala 函数式编程学习视频 -- Mac OS X 下工具设置

随着苹果在 iPhone, iPad 以及 Apple Watch 上的造势,Mac OS X 也越来越流行起来。我们公司最近购置了不少的 Mac 设备,本人在 Apple 平台上工作已有三年了,对 Windows 系统感觉陌生了。

本视频示例了在 Mac OS X 下的 JDK, SBT 安装,一般 Mac OS X 随机安装了 JDK,若没有的话执行 java -version 会带领你安装 JDK。需要设置 SBT 的 PATH。以及如何下载安接 Scala SDK IDE (集成了 Scala SDK, Scala 插件的 Eclipse,这样就不用单独安装那三个玩意儿)。

如果想要安装更高版本的 JDK 也是要到 Oracle 去下载,还需设置新 JDK bin PATH 覆盖现有的。

接着在 Scala IDE 中演示了 Scala HelloWorld 程序,最后就是 Scala WorkSheet,比 Scala 命令行下的 REPL 更强大的交互式工具,比 Swift 还早的 Playground.

阅读全文 >>

类别: Scala. 标签: , . 阅读(220). 评论(0) »

Scala 函数式编程学习视频 -- Linux 下工具设置

不清楚现在用 Linux 桌面做编程的有多少了,主要由 Ubuntu 和  RedHat 来支撑了。Mac OS X 倒是越发流行起来。

本视频示例了在 Ubuntu 上安装 JDK, SBT -- 下载,解压,设置 PATH 的过程。以及如何下载安接 Scala SDK IDE (集成了 Scala SDK, Scala 插件的 Eclipse,这样就不用单独安装那三个玩意儿)。

接着在 Scala IDE 中演示了 Scala HelloWorld 程序,最后就是 Scala WorkSheet,比 Scala 命令行下的 REPL 更强大的交互式工具,比 Swift 还早的 Playground.

阅读全文 >>

类别: Scala. 标签: , . 阅读(72). 评论(0) »

Scala 函数式编程学习视频 -- 课程介绍

Functional Programming Principles in Scala 课程介绍及课程安排,视频中会提些小问题,会在后面的视频中看到答案。其后三个视频将会涉及到 Scala 环境的设置,包括 Windows, Mac OS X 和 Linux 下的工具设置。我们将接触到 SBT(Simple Build Tool),其实是名不符实,SBT 是我用过最不简单的构建工具。我也觉得 SBT 叫做 Scala Build Tool 才合适,可以选择 Gradle,不过本课程是用 SBT。IDE 的话基本就是 Eclipse, IDEA 二分天下。

挂上了英文字幕,你要在官方学完这套课程还能得到一个认证,形式而已。

阅读全文 >>

类别: Scala. 标签: , . 阅读(156). 评论(0) »

配置 Scala 的 vim 编辑环境

能在 Eclipse 或是 IDEA 中写 Scala 程序当然是不错的,但有时候还是有必要在更轻量级的文本编辑器中编辑,在 Unix 族系统中首推 vi。最主要就是要让 vi 支持 Scala 的语法高亮。

有现成的 vi 插件,https://github.com/scala/scala-dist/tree/master/tool-support/src/vim。下载下来三个目录 indent, syntax 和 ftdetect 及文件放在 ~/.vim 目录下.

然后到 vim 中命令 syntax on 打开语法高亮就能识别 *.scala 文件高亮显示 Scala 代码了。应该把 syn on 加到 vim 的初始化脚本  ~/.vimrc 文件中去。

更为自动的一点是有人把下载支持文件做成了一句语 bash 脚本 阅读全文 >>

类别: Scala, Vim. 标签: , . 阅读(1,042). 评论(0) »

Play2.3 自定义模板类型 -- Java 版

在上一篇 Play2 自定义模板类型 (Java&Scala),是基于 Play2.2 怎么自定义 Json 模板类型,分别用 Java 和 Scala 实现。从 Play2.3 开始,模板明确了是用 Twirl,所以构建文件上的配置略有不同,并且模板编译出的源文件位置也不一样,Play2.2 前生成的模板源文件在 target/scala-2.10/src_managed/main/views 目录,现在是生成在 target/twirl/main/views 目录。

在 Play2.3 中仍然是默认只支持 html, txt, xml, js 四种类型的模板,见 SbtTwirl。我们这里还是以增加 Json 模板支持为例,且只介绍用 Java 的方式。因为 Play2 尽管可以用 Java 来编写应用,但实现部份基本是 Scala,所以如果用 Scala 来进行扩展相对来说来比用 Java 简单些。

Play2.3 官方的自定义模板的文档 Adding support for a custom format to the template engine 有些出入,似乎还未来得急更新,以实操为证。

还是从构建文件开始 阅读全文 >>

类别: PlayFramework. 标签: . 阅读(765). 评论(0) »
Page 20 of 107« First...10...1819202122...304050...Last »