record?

added
1.6

ns
clojure.core

type
function

(record? x)

Returns true if x is a record

                ;; Define a record R
user=> (defrecord R [x])
user.R

;; Create an instance of R called r
user=> (def r (->R 1))
#'user/r

;; Look at r
user=> r
#user.R{:x 1}

;; Is r a record?
user=> (record? r)
true

;; Interestingly adding "fields" not defined in R keeps it a record
user=> (def r2 (assoc r :y 2))
#'user/r2

user=> r2
#user.R{:x 1, :y 2}

;; r2 is still a record
user=> (record? r2)
true

;; But regular map is not a record
user=> (record? {:x 1})
false