2006-09-18 [長年日記]

[Haskell][C++] 対比

data X a = X a

は、

template<class T>
struct X {
  X(const T& t) {
  }
};

のような感じ。

date X = forall a. X a

は、

struct X {
  template<class T>
  X(const T& t) {
  }
};

のような感じ。

data Num a => X a = X a

は、

template<class Num>
struct X {
  X(const Num& n) {
  }
};

のような感じ。

data X = X (forall a. Num a => a)

は、

struct X {
  X(const Num& n) {
  }
};

のような感じ。

C++だと制約がうまく表せない場所がありますが(例えば3番目のNumの制約とか)、こんな感じではないかと。


トップ «前の日記(2006-09-17) 最新 次の日記(2006-09-19)»