2009年8月26日 星期三

C++ concept 與 Haskell type class

今天開始看《泛型程式設計與STL》這一本書,一開始我看到了 concept,他在 STL 之中,只是一個概念,在 C++ 之中沒有真正與之對應的程式語法。concept 代表的是一種概念,例如: 我們說 Iterator(迭代器)是一個 concept,Iterator 可以進行 dereference, increase, 之類的操作,而 pointer 就是一個 Iterator concept 的 model。

而在 C++0x 之中,本來有一個很振奮人心的提案,就叫 concept,就是要用來對映 STL 之中 concept 的語意,並提供編譯器更好的解析工具,使得我們對各種型別可以有更嚴謹的定義。可惜好像不會在 C++0x 推出,而且被 Delay (但還沒有被放棄)。

我在看 C++ concept 的時候,我腦海忽然想到之前在 Haskell 學得type class,我覺得他們的目的還有語意都十分相似,上網搜尋一下,還真得有期刊是在寫 Haskell type class vs C++ concept。

想一想還真有趣!

沒有留言:

張貼留言