七周七语言
理解多种编程范型
理解多种编程范型
Ruby、Python、JavaScript、Haskell、Scala、Erlang、Clojure、Prolog。
语言的类型模型是什么?强类型(Java)或弱类型(C语言) ,静态类型(Java)或动态类型 (Ruby) 。
语言的编程范型是什么?是面向对象(object-oriented,OO) 、函数式、过程式,还是它们的综合体?
怎样和语言交互?语言可编译也可解释,可以有虚拟机也可以没有。
语言的判断结构(decision construct)和核心数据结构是什么?或许你会惊讶,在作判断时,居然如此多的语言都用到了与if和while的各种变型都不相同的结构。
哪些核心特性让这门语言与众不同?有些语言支持并发编程的高级特性,有些语言提供独一无二的高级结构
有糖相伴好下药。
Java像一位地主家的孩子,小时候天真可爱,但长大后开始巧取豪夺,方圆百里之内听不到一丝欢声笑语
Visual Basic像一位浓妆艳抹的美发师,虽对全球变暖问题一无所知,理发却是一把好手,言谈风趣幽默总能把人逗得开怀大笑。
先来认识一下Ruby,我的最爱之一。她偶尔会搞怪,却总是很妩媚;带有那么点神秘,却有着百分百的魅力。
Ruby出身于所谓的脚本语言家族, 是一种解释型、 面向对象、 动态类型的语言。
对于面向对象设计的清晰性来说,鸭子类型至关重要。在面向对象设计思想中,有这样一个重要原则:对接口编码,不对实现编码
过往经验表明,多继承不仅复杂,且问题多多。Java采用接口解决这一问题,而Ruby采用的是模块。
在Java中,这种依赖关系是显式的,即类会实现一个约束方法名的接口;而在Ruby中,这依赖关系是隐式的,即通过鸭子类型来实现
元编程,说白了就是“写能写程序的程序”
问题不是“我们要干点儿什么”而是“我们有什么不能干”
如同Lua、JavaScript一样,Io是一种原型语言,这意味着每个对象都是另一个对象的复制品。
在原型语言中,每个对象都不是类的复制品,而是一个实实在在的对象。
Prolog是一门声明式编程语言