blob: 9760ec0e9f422be04493c81ed569d5dad2cfa540 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
;; Copyright (c) Stephen C. Gilardi. All rights reserved.
;; The use and distribution terms for this software are covered by the
;; Common Public License 1.0 (http://opensource.org/licenses/cpl.php)
;; which can be found in the file CPL.TXT at the root of this distribution.
;; By using this software in any fashion, you are agreeing to be bound by
;; the terms of this license.
;; You must not remove this notice, or any other, from this software.
;;
;; pred.clj
;;
;; Some clojure predicates
;;
;; Items commented out below are defined in the clojure namespace
;;
;; scgilardi (gmail)
;; 28 June 2008
(ns clojure.contrib.pred)
;; coll?
;; list?
;; map?
;; set?
(defn stack?
"Returns true if x implements IPersistentStack"
[x]
(instance? clojure.lang.IPersistentStack x))
;; vector?
(defn ref?
"Returns true if x implements IRef"
[x]
(instance? clojure.lang.IRef x))
;; seq?
;; var?
(defn map-entry?
"Returns true if x is a MapEntry"
[x]
(instance? clojure.lang.MapEntry x))
(defn atom?
"Returns true if x is not a collection"
[x]
(not (coll? x)))
;; number?
;; ratio?
(defn range?
"Returns true if x is a Range"
[x]
(instance? clojure.lang.Range x))
;; function? -> fn?
(defmacro macro?
"Returns true if x is a function and the symbol of the
same name can be resolved and has its :macro metadata
set"
[x]
`(and (fn? ~x) (boolean (:macro ^#'~x))))
;; integer?
;; even?
;; odd?
;; empty?
|