Как говорит строка документации, alength
работает с массивами Java ™, такими как String[]
или Integer[]
, что, безусловно, является несовместимым типом со списками или векторами Clojure, для которых вы хотите использовать count
user=> (def x '(1 2 3))
#'user/x
user=> (def xa (to-array x))
#'user/xa
user=> (class x)
clojure.lang.PersistentList
user=> (class xa)
[Ljava.lang.Object;
user=> (alength xa)
3
user=> (alength x)
java.lang.IllegalArgumentException: No matching method found: alength (NO_SOURCE_FILE:0)
user=> (count x)
3
[Ljava.lang.Object;
- странный способ toString
- это , определенный для вывода для собственных Object
массивов.