LINUX.ORG.RU

История изменений

Исправление korvin_, (текущая версия) :

Так, ещё раз: почему?

Потому что используются для разных целей: дженерики для обеспечения параметрического полиморфизма, тайпклассы — для специального.

Например: http://ideone.com/s3FhtG

Во-первых, у тебя foo — функция двух аргументов (this и a), а не одного, как в хаскелльном варианте.

Во-вторых, она делает не то же, что хаскелльная.

В-третьих, и где же дженерики? =)

Я же указал на разницу между шаблонами и дженериками: проверка типов происходит на разных этапах, и в этом смысле дженерики как раз ближе.

На практике это не имеет значения и на близость никак не сказывается.

Исправление korvin_, :

Так, ещё раз: почему?

Потому что используются для разных целей: дженерики для обеспечения параметрического полиморфизма, тайпклассы — для специального.

Например: http://ideone.com/s3FhtG

Во-первых, у тебя foo — функция двух аргументов (this и a), а не одного, как в хаскелльном варианте.

Во-вторых, она делает не то же, что хаскелльная.

В-третьих, и где же дженерики? =)

Исправление korvin_, :

Так, ещё раз: почему?

Потому что используются для разных целей: дженерики для обеспечения параметрического полиморфизма, тайпклассы — для специального.

Например: http://ideone.com/s3FhtG

Во-первых, у тебя foo — функция двух аргументов (this и a).

Во-вторых, она делает не то же, что хаскелльная.

В-третьих, и где же дженерики? =)

Исходная версия korvin_, :

Так, ещё раз: почему?

Потому что используются для разных целей: дженерики для обеспечения параметрического полиморфизма, тайпклассы — для специального.

Например: http://ideone.com/s3FhtG

Во-первых, у тебя foo — функция двух аргументов (this и a). Во-вторых, делает не то, что хаскелльная. В-третьих, и где же дженерики? =)