Как правильно реализовать основные интерфейсы Clojure?
Если я реализую некоторую структуру данных в Clojure, используя deftype
Как мне решить, какой из основных интерфейсов Clojure реализовать?
Мне не удалось найти исчерпывающее руководство по различным интерфейсам Clojure; на самом деле единственной важной информацией, которую мне удалось найти, был этот вопрос, который очень ограничен по объему.
То, что я ищу, - это список каждого из основных интерфейсов Clojure с кратким описанием того, что это такое, и когда вы должны его реализовать (или, если вообще нужно, вообще его реализовать!), А также список все общие функции в clojure.core
которые используют это. Описание или схема дерева наследования всех этих интерфейсов также будут полезны.
2 ответа
Отличная книга Clojure Applied, созданная Беном Вандгрифтом и Алексом Миллером, содержит подробную информацию по этой теме в "Главе 2. Сбор и организация ваших данных" в разделе "Создание пользовательских коллекций". Визуальная схема интерфейсов в clojure.lang
предоставляется на странице 39.
Я не могу ответить на все ваши вопросы, но обычно я начинаю с clojure atlas http://www.clojureatlas.com/ чтобы найти, какие интерфейсы реализовать.