這個問題更kinded類型是誰知道這兩個哈斯克爾(或支持更高kinded類型的任何其他函數式語言)和C++的人...與C++
是否可以使用較高kinded類型的建模C++模板?如果是,那麼如何?
編輯:
從this呈現由託尼·莫里斯:
高階多態性:
語言如Java和C#有 一級多態性,因爲他們 允許我們抽象類型。例如
List<A>
可以有一個reverse
功能 可以在任何元素類型(A
)上工作。更實際的編程語言 和類型系統允許我們 抽象的類型構造爲 好。
此功能被稱爲高階 (或更高主觀)多態性。
例子:
僞的Java與高階多態性
interface Transformer<X, Y> {
Y transform(X x);
}
interface Monad<M> { // M :: * -> *
<A> M<A> pure(A a);
<A, B> M<B> bind(Transformer<A, M<B>> t, M<A> a);
}
也許你可以舉一個你的目標的例子。對我們來說,不知道功能成語是否會有幫助。 – GManNickG 2010-04-02 05:17:35
@GMan:我可以舉一個例子,但我很清楚,除了那些已經知道它的人之外,這並不意味着什麼。所以我沒有打算加入一個例子。 – 2010-04-02 05:21:56
@Venkat:我的意思是一個目標,你的大圖是什麼?您需要更高級的類型:__________。另外,一個非常簡單的評論示例仍然比沒有好。 :) – GManNickG 2010-04-02 05:24:22