Rust和Haskell比较

         
banq
16-05-20 333

Rust语言从纯正的函数语言Haskell借鉴了一些设计,两者主要区别是:

Haskell 和 Rust都有:
类型/内存安全(Type/memory-safety)
没有空null出错(No nulls)
默认不可变(Immutability by default)
面向富有表现力的语法(比如if-else返回一个值)
高阶函数
象征性的类型(Nominal types)
代数数据类型 (sum types, tagged unions, "enums with data in em", ...)
模式匹配
泛型函数和类型(parametric polymorphism参数多态性)
类型类(Type class,如traits)
本地类型推导

只Haskell有的:
纯正
懒计算(Laziness)
自动/隐式分配(Automatic / implicit allocation)
更高种类型(Higher-kinded types)
全局类型推断(Global type inference)
多态递归(Polymorphic recursion)
尾调用优化(Tail call elimination)

只Rust有:
严密精确
普遍的unboxed数据(Pervasively unboxed data)
内建过程控制流程
仿射型(Affine types "move semantics")
声明周期管理 (region types, borrowing)
自动解构器(Automatic destructor)
数据竞争消除(Elimination of data races)
防止孤独实例(A ban on orphan instances)
嵌套和递归模块(Nested and recursive modules)

原文见:
glaebhoerl 對 What has Rust borrowed? 的留言
[该贴被banq于2016-05-22 08:42修改过]