Scala特性Haskell类型类和C ++ 0x概念之间有什么区别?
在下面的示例中,Observer声明了一个抽象成员receiveUpdate 观察者实际上是“匿名”类型或结构类型。
package observer
trait Subject {
type Observer = { def receiveUpdate(subject: Any) }
private var observers = List[Observer]()
def addObserver(observer:Observer) = observers ::= observer
def notifyObservers = observers foreach (_.receiveUpdate(this))
}
答案 0 :(得分:7)
因此,只有两个有共同点,但不是很多,即Concepts和Type-classes。本文中已经对两者进行了比较:A comparison of C++ concepts and Haskell type classes