2015-11-27 3 views
0

Я написал функцию Clojure, которая использует повторялись для обработки с помощью списка и возвращает результат обратно в векторе ...Нет реализации метода класса: clojure.lang.ArraySeq

(defn do_stuff [input, results] 
;; using recur and conj here to build up results 
) 

У меня есть еще один функция, где мне нужно, чтобы передать результат do_stuff, и я получаю эту ошибку:

No implementation of method: :to_my_format of protocol: #'com.beebunny.to_my_format found for class: clojure.lang.ArraySeq

Моя функция to_my_format имеет реализацию для clojure.lang.IPersistentVector и IPersistentList. Есть ли способ, который я могу преобразовать в тот или иной?

Спасибо.

ответ

1

Простым решением является обертывание ArraySeq с помощью into.

(into [] array-seq) 

Но это могло бы быть лучше, если вы реорганизовывать протокол для работы с ISeq, если все, что вам нужно последовательно сканировать данные и производить результат. Таким образом, все, что есть последовательный может быть передан с помощью простого вызова seq.

+0

Такая же ошибка, когда я сделал (в [] array-seq) – Beebunny

+2

Можете ли вы разместить больше кода? Особенно, как вы получаете этот ArraySeq и как вы его трансформировали. – Davyzhu

Смежные вопросы