Почему считается?вернуть true в одном случае и false в другом? - PullRequest
3 голосов
/ 19 марта 2011
Clojure 1.2.0
user=> (def x (repeat 10 1))
#'user/x
user=> (counted? x)
false
user=> (def x (list 1 2 3))
#'user/x
user=> (counted? x)
true
user=> 

1 Ответ

6 голосов
/ 19 марта 2011
  • (repeat 10 1) возвращает LazySeq
  • (list 1 2 3) возвращает PersistentList

Очевидно, что нет способа узнать, сколько предметов находится в ленивой последовательности, пока эта последовательность не будет оценена.

counted? возвращает true для любого класса, который реализует интерфейс clojure.lang.Counted.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...