Seven Languages in Seven Weeks
Steve Tsang七门语言的小项目指南
第一章 简介
本书的七门语言:
Ruby/Lo/Prolog/Scala/Erlang/Clojure/Hasekell
这一章中,作者着重介绍了他对于本书一个定位。你可以把这一章理解为一个声明,声明作者的意图,对于语言的看法,谁应该买这本书,谁不应该买这本书以及作者的赠言:享受编程。
第二点特殊强调一下,作者**关于语言的看法**(问题):
- 语言的类型模型是什么?强类型(Java)/弱类型(C语言)/动态类型(Ruby)
- 语言的编程范型是什么?面向对象(object-oriented)/函数式/过程式/综合体
- 怎样和语言交互?编译/解释;虚拟机有无;交互命令行/文件编程
- 语言的判断结构和核心数据结构是什么?if和while的各种变型;“理解集合”
- 哪些核心特性让这门语言与众不同?
注意:
1. 不是安装指南:操作和安装有简明的指导,但却不会兼顾所有版本细节
2. 不是编程参考:本书不是参考大全,目的在于体验每门语言的真是范例,亲眼见识它们的程序代码,尽可能编译并正常运行/借助各门语言的支持社区
3. 严格督促:每周的小型编程挑战和实战项目/独立解答习题
2017-11-05
第二章 Ruby
Ruby作者:松本行弘(Yukihiro Matsumoto), 即Matz
Ruby: 解释型(由解释器而非编译器执行)、纯面向对象(支持封装、类继承)、动态类型(类型再运行时而非编译时绑定)的语言
Properties: ['object oriented', 'duck typed', 'productive', 'fun']
概念笔记
“一切皆为对象”
一等对象:
- 可存储于变量或数据结构中
- 可作为参数传递给函数
- 可作为返回值从函数返回
如:C++中的对象/函数式语言中的函数
条件句if的实现:
块形式:
ruby
if condition
statemenets
end
单行形式:statements if condition / order.calculate tax unless order.nil
while的实现:
- 单行形式: x = x + 1 while x < 10
- 块形式:
ruby
while x < 10
x = x + 1
puts x
end
Ruby中,0也是true. 只有`nil`和`false`代表false
逻辑表达式的短路求值( and or && || )和正常求值( & | )
未完待续