Тип последовательности замыкания
Какой правильный тип последовательности? У меня есть этот код:
(defrecord MethodInfo [^clojure.lang.ISeq preconds ^clojure.lang.ISeq postconds])
Но, похоже, он не обеспечивает должного соблюдения требований к типу, так как я могу написать (new MethodInfo 1 2)
,
1 ответ
Решение
Насколько я понимаю, подсказки типа Clojure существуют только из соображений производительности, чтобы улучшить поиск методов путем обхода отражения; Это их единственное назначение, а не принудительное применение статических типов в динамическом языке.
Пожалуйста, посмотрите этот ответ на аналогичный вопрос.
Редактировать:
В некоторых случаях в Clojure 1.3 говорится о возможности применения примитивных типов возвращаемых данных, но это явно то, что постоянно меняется, и все же не будет применяться к типам последовательностей.