Что в clojure эквивалентно переопределению «равно» в java?

Я недавно спросил о составных ключах в картах в clojure: Как вы можете реализовать составные ключи в clojure? ...

Ответ заключался в том, что они работают аналогично java-клавишам - если что-то переопределяет «равно», то это может эффективно использоваться как ключ.

Мне было интересно: существуют ли макросы, позволяющие переопределить «равно» для пользовательских структур данных? Например, скажем, я хотел использовать карту в качестве ключа и определить уникальность как «если эта карта содержит 2 или более элементов, общих с другой картой, они равны». Как я могу изменить поведение карты по умолчанию?

В java я считаю, что это средство весьма мощно при создании высокоскоростных карт с тысячами bean-компонентов в качестве ключей.

5
задан Community 23 May 2017 в 11:59
поделиться