http://arxiv.org/pdf/1201.0027.pdf
В тексте непременно замешан Хаскель, Окамл, моноиды, полугруппы, Страуструп, Степанов и Олег™®©.
Haskell faired particularly well in this study, with Standard ML not too far behind, while Eiffel, Java, and C# did not do as well. The underlying pattern was that the three object-oriented languages relied on F-bounded polymorphism, whereas Standard ML and Haskell did not. Standard ML supports generic programming through Functors and signatures and Haskell supports generic programming via type classes. The take-away point for us was that a design for concepts in C++ should be based on the best features of Haskell and Standard ML, and not F-bounded polymorphism. Our case study influenced other programming language researchers. For example, Chakravarty et al. added associated types to Haskell (Шрифт мой —lionet), filling in the only half-circle for Haskell in Table 1.
<...>
In addition to informing the design for concepts, FG inspired the implicits feature of the Scala language. (Шрифт мой —lionet) The inspiration for FG came primarily from Haskell and Standard ML.
<...>
Nevertheless, type classes provide excellent support for generic programming, combining a modular type system with the convenience of implicit instantiation of generics […]. If only the divide between the imperative and functional programming communities had not been so large!
Как всегда, самая мякотка — на странице 42.
Enjoy!

February 3 2012, 07:25:27 UTC 3 months ago
February 3 2012, 07:33:15 UTC 3 months ago
February 3 2012, 09:08:42 UTC 3 months ago
Deleted comment
February 3 2012, 07:48:59 UTC 3 months ago
Deleted comment
February 3 2012, 08:14:01 UTC 3 months ago
February 3 2012, 11:01:57 UTC 3 months ago
Лично мне, как человеку слабо разбирающемся в STL (и знакомым с ней только понаслышке), было интересно, наконец, выяснить какие же все-таки существуют проблемы, связанные с использованием шаблонов в сиплюсах. Так же, в целом, интересно было проследить историю развития GP и его различные имплементации: generic packages (Ada), type set-ы Лискова (CLU), сигнатуры и функторы МакКуина (HOPE и впоследствии SML), type classes (Haskell).
И про историю создания концептов было очень занимательно почитать. Спасибо.
February 3 2012, 13:40:57 UTC 3 months ago
February 3 2012, 13:55:16 UTC 3 months ago
February 3 2012, 12:42:26 UTC 3 months ago
"The Indiana proposal also differed from the Texas proposal in that it did not
support implicit modeling, but instead relied on model definitions to establish the
modeling relationship between a class and a concept."
Давно знал, что из-за каких-то придурков, предложивших свою реализацию, которая напрочь убивает всю идею концептов, Страуструпу пришлось отказаться от включения их в стандарт. Теперь подробнее прочитал, что это за придурки. Так и знал, что без ёбнутых функциональщиков тут не обошлось.
February 3 2012, 22:37:05 UTC 3 months ago
February 4 2012, 13:51:27 UTC 3 months ago
Тот вариант, в котором мэппинг между типом и концептом объявляется явно, по сути дублирует type traits.
February 4 2012, 15:54:29 UTC 3 months ago
February 4 2012, 17:25:05 UTC 3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
February 3 2012, 13:51:37 UTC 3 months ago
Я их уже люблю.
February 3 2012, 21:58:30 UTC 3 months ago
February 4 2012, 11:55:45 UTC 3 months ago
надо вообще чорные фичи нахрен выкинуть, и прибить гвоздями один стандарт лет на дцать.
February 4 2012, 12:36:10 UTC 3 months ago
February 4 2012, 12:40:44 UTC 3 months ago
February 4 2012, 15:55:18 UTC 3 months ago
February 4 2012, 18:17:56 UTC 3 months ago
February 4 2012, 19:28:52 UTC 3 months ago
February 4 2012, 19:33:57 UTC 3 months ago
Речь шла о том, чтобы шаблоны из макросов на стероидах превратить в дженерики на стероидах.
February 4 2012, 20:02:12 UTC 3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago