Predecessible и Successible
Формальное определение
Predecessible
— это класс типов для представления множеств, которые можно считать в обратном порядке,
т.е. у каждого элемента есть предыдущий элемент, меньший его.
Successible
— это класс типов для представления множеств, которые увеличиваются,
т.е. у каждого элемента есть следующий элемент, больший его.
Определение в виде кода на Scala
trait Predecessible[A]:
def prev(a: A): A
trait Successible[A]:
def next(a: A): A
trait Bothable[A] extends Predecessible[A], Successible[A]
Примеры
Числа
given Bothable[Int] with
override def prev(a: Int): Int = a - 1
override def next(a: Int): Int = a + 1
Ссылки: