toBeTheLight.github.io 荒原

《七周七语言-理解多种编程范式》

2022-09-25
toBeTheLight

Ruby

目的为了开发效率的面向对象脚本语言,性能是弱点。

  • 开放类:对类的直接修改
  • 基于开放类和模块组织方式的元编程

Io

原型语言,类型灵活。

基于协程、actor、future 的并发机制。

某种程度上和 JavaScript 很像:原型链 + 并发。

Prolog

一种逻辑声明式的编程语言。

  • 有趣的“合一”规则,应该是语言的核心,逻辑的成功和失败就是合一的成功和失败
  • 另外一半是内置的逻辑“谓词”,可以理解为内置的一些合一逻辑
  • 有趣的合一“通配符”
  • 很适合做逻辑/递归推导的逻辑声明方式

Scala

支持面向对象和函数式编程两种范式的语言。

基于 actor 和消息传递与消息模式匹配器机制的并发模型。

Erlang

为并发量身打造的无线程基于轻量级进程的语言。

基于 send、receive、spawn 的并发机制,很有意思。

采用模式匹配的方式定义函数的行为,入参未必是型参,可以是一个实际的值,从而定义了函数在这个入参情况下的行为,从而更容易进行递归等逻辑的定义。

Clojure

Lisp(List Processing)的方言,一种以“列表”模式组织代码的语言,其指令和数据都是这种结构。

函数式编程语言。

以原子、引用、代理等概念完成并发支持,采用 STM 模型(理解为一种基于内存的数据库,进行并发下的状态管理)。

Haskell

强类型定义的静态类型毫无妥协的纯函数式语言。

其函数的模式匹配定义方式与 Erlang 相同。

柯里化、高阶函数、Monad 等函数式编程的模板定义。


上一篇 《硬核晋升》

Content