(list? x)
Returns true if x implements IPersistentList
;; an idiomatic persistent-list is a list
(list? '(1 2 3))
;;=> true
;; a persistent-list is a list
;; (list? (list 1 2))
;;=> true
;; a numeric value (long) is not a list
(list? 0)
;;=> false
;; a persistent-array-map is not a list
(list? {})
;;=> false
;; a persistent-vector is not a list
(list? [])
;;=> false
;; a lazy-sequence is not always a list
(list? (range 10))
;;=> false
;; not all lists are lists
(cons 1 '(2 3))
;; => (1 2 3)
(= '(1 2 3) (cons 1 '(2 3)))
;; => true
(list? (cons 1 '(2 3)))
;; => false
;; good news is:
(seq? (cons 1 '(2 3)))
;; => true
(seq? [1 2 3])
;; => false
;; So seq? might be what you are looking
;; for when you want to test listness.