Почему У Clojure есть 5 способов определить класс вместо одного?

Clojure имеет gen-class, reify, proxy, а также deftype и defrecord для определения новых типов данных, подобных классам.Для языка, который ценит синтаксическую простоту и не терпит ненужной сложности, это кажется отклонением. Может кто-нибудь объяснить, почему это так? Может ли быть достаточно defclass в стиле Common Lisp?

80
задан mikera 1 July 2012 в 21:00
поделиться