Что такое высший родственный тип в Scala?

Вы можете найти в Интернете следующее:

  1. Высший тип == конструктор типа?

     class AClass [T] {...} // Например, class List [T  ]
     

    Некоторые говорят, что это высший родственный тип, потому что он рефераты над типами, которые соответствовали бы определению.

    Высшие родственные типы - это типы, которые принимают другие типы и создают новый тип

    Они также известны как конструктор типов . (Например, в Программирование на Scala .)

  2. Высший тип == конструктор типа, который принимает конструктор типа в качестве параметра типа?

    В статье Generics of a Higher Kind вы можете прочитать

    ... типы, которые абстрагируются от типов, которые абстрагируются над типами ('высокородные типы') ... "

    , что предполагает, что

     class XClass [M [T]] {...} // или
    
    trait YTrait [N [_]] {...} // например,  trait Functor [F [_]]
     

    - это более высокодородный тип.

Таким образом, с учетом этого трудно различить конструктор типа , высший родственный тип и конструктор типа, который принимает конструкторы типов как параметр типа , поэтому вопрос выше.

262
задан Ben Kovitz 22 May 2014 в 07:18
поделиться