2014-09-07 2 views
0

В Clojure REPL, когда я печатаю

(type (seq [0 1 2 3])) 

и оценить его, я получил "clojure.lang.PersistentVector $ ChunkedSeq", но "clojure.lang.PersistentVector" само по себе является классом в Clojure. Почему существует «$ ChunkedSeq» и ​​что означает обозначение «$»?

Спасибо!

ответ

3

$ означает, что ChunkedSeq - это класс, определенный внутри PersistentVector. Что же касается то, что фрагментированный следа есть, см this blog post from four years ago, когда Clojure 1.1 вышел:

функция последовательности Clojure ленива, однако с выпуском Clojure 1.1 зернистостью этой лени была изменена с 1-на-а -time для модели с куском по времени. Другими словами, вместо «хождения» по последовательности по одному узлу, последовательности последовательностей обеспечивают «оконные» просмотры по последовательностям 32-х элементов.

+0

Спасибо! Очень ценю ваш ответ! – zhxchen17

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