fn?

added
1.0

ns
clojure.core

type
function

(fn? x)

Returns true if x implements Fn, i.e. is an object created via fn.

                user=> (fn? 5)
false
user=> (fn? inc)
true
user=> (fn? (fn []))
true
user=> (fn? #(5))
true
            
                ;; Even though maps, sets, vectors and keywords behave as functions:
user=> ({:a 1} :a)
1

;; fn? still returns false for them because they are not created using fn:
user=> (fn? {:a 1})
false