Подтвердить что ты не робот

Оператор Scala ~> (тильда больше)

У меня есть следующее определение класса scala (найдено в статье), моделирование категорий:

trait Category[~>[_, _]] {
    def compose[A, B, C]
     (f: B ~> C)
     (g: A ~> B)
     : A ~> C
    def id[A]: A ~> A
}

может кто-нибудь объяснить мне, что означает '~ > ' в параметре типа Category, а в методе возвращаемого типа? Или направьте меня на ресурс, который объясняет это... Я новичок в scala (из Java), поэтому простите меня, если бы что-то пользователь scala должен был знать... Заранее благодарю

4b9b3361

Ответ 1

~> - это просто имя-заполнитель для параметра типа Category. Как T в class Option[T].

Кроме того, синтаксис Scala позволяет писать B ~> C как сокращенное обозначение ~>[B, C].

Возможно, все станет понятнее, если вы переименуете его:

trait Category[Mapping[_, _]] {
  def compose[A, B, C](f: Mapping[B, C])(g: Mapping[A, B]): Mapping[A, C]
  def id[A]: Mapping[A, A]
}

Ответ 2

Это также используется в потоках Akka как оператор края.