Наткнулся на либу для построения графов
Насколько она хороша не знаю, но меня зацепило, как они грациозно позволяют задать граф:
LabeledGraph { A - "C" - E }
• A и E — объекты вершин, возможно уже с какими-то связями
• "C" — название для новой вершины, для которой автоматически создастся объект
и вместе они соединяются в направленный граф с помощью минуса
примерно так:
operator fun minus(new: Any) = Vertex(incoming = this, current = new)
....
есть еще ситуации, когда кастомный operator реально упрощает жизнь?
operator fun minus(b: Int) = this + b 👍
