Куда девался Дефадт в новом вкладе clojure?

Итак, копаясь в попытках выяснить, как делать ADT в Clojure, я натыкаюсь на старый clojure-contrib, который хорош, за исключением того, что он был заменен. Хорошо, ничего страшного, просто просмотрите замененный каталог разбитых библиотек clojure-contrib, но, хоть убей, я не могу найти, куда был перенесен defadt в новых разбитых библиотеках clojure-contrib.

Так куда оно мигрировало?

Я искал http://dev.clojure.org/display/doc/Clojure+Contrib+Libraries, но не могу понять.

бонусные баллы, если вы дадите мне строку для передачи alembic.still/distill, чтобы он подключил ее для меня.


person Jimmy Hoffa    schedule 25.02.2014    source источник
comment
Вероятно, это следует опубликовать на Programmers.SE.   -  person Jimmy Hoffa    schedule 25.02.2014
comment
не совсем: это довольно конкретный вопрос о библиотеке программирования. Это определенно по теме для SO.   -  person mikera    schedule 26.02.2014


Ответы (1)


Обычный стиль в Clojure не заключается в определении АТД. Я считаю функциональность defadt старой/устаревшей.

Вместо этого рассмотрите возможность определения своих структур данных с помощью обычных карт или векторов Clojure.

В качестве альтернативы вы можете использовать deftype или defrecord, если вам нужен именованный тип, который можно использовать для полиморфной отправки с использованием протоколов. Это гибкий и быстрый способ получить поведение, подобное ADT.

person mikera    schedule 26.02.2014
comment
Это то, что я подозревал, но спасибо, что разъяснили! Тогда я остановлюсь на записях и типах, так как это более идиоматично. - person Jimmy Hoffa; 26.02.2014