Оператор 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 должен был знать...
Заранее благодарю
Ответы
Ответ 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 как оператор края.