Ответ 1
Это действительно вопрос дизайна, наиболее подходящий для ggroup, но FWIW, я исследовал peek
/peek!
некоторое время назад, и предоставление peek!
кажется простым вопросом создания нового интерфейса clojure.lang.ITransientStack
для параллельный clojure.lang.IPersistentStack
и имеющий переходные векторы реализуют его.
Я предполагаю, что если такой интерфейс еще не доступен (и используется переходными процессами), это, вероятно, вопрос приоритетов. Реализация одного потока с быстрым стеком уже доступна в Clojure в форме java.util.Stack
, поэтому мы не упускаем здесь много функций; синтаксическое удобство и плавное преобразование в постоянные векторы, вероятно, будут достигнуты, когда прогресс будет сделан на Clojure -in- Clojure.
(Когда доход от инвестирования высок, улучшения на стороне Java Clojure имеют смысл, даже если конечная цель состоит в том, чтобы в конечном итоге отказаться от соответствующей части Java-кода и заменить ее реализацией в Clojure Если ожидаемая доходность ниже, может возникнуть больше смысла ждать, пока протоколы будут использоваться повсеместно и т.д. Доступный в настоящее время набор функций для обработки переходных процессов достаточно для собственных потребностей Clojure, и я не уверен, что когда-либо было вызовите peek!
в ggroup - как для # clojure, я помню один соответствующий разговор - так что возвращение, вероятно, считается низким... Вы могли бы начать массовые движения, чтобы изменить это, хотя.:-))