Как правильно реализовать основные интерфейсы Clojure?

Если я реализую некоторую структуру данных в Clojure, используя deftype Как мне решить, какой из основных интерфейсов Clojure реализовать?

Мне не удалось найти исчерпывающее руководство по различным интерфейсам Clojure; на самом деле единственной важной информацией, которую мне удалось найти, был этот вопрос, который очень ограничен по объему.

То, что я ищу, - это список каждого из основных интерфейсов Clojure с кратким описанием того, что это такое, и когда вы должны его реализовать (или, если вообще нужно, вообще его реализовать!), А также список все общие функции в clojure.core которые используют это. Описание или схема дерева наследования всех этих интерфейсов также будут полезны.

2 ответа

Решение

Отличная книга Clojure Applied, созданная Беном Вандгрифтом и Алексом Миллером, содержит подробную информацию по этой теме в "Главе 2. Сбор и организация ваших данных" в разделе "Создание пользовательских коллекций". Визуальная схема интерфейсов в clojure.lang предоставляется на странице 39.

Я не могу ответить на все ваши вопросы, но обычно я начинаю с clojure atlas http://www.clojureatlas.com/ чтобы найти, какие интерфейсы реализовать.

Другие вопросы по тегам