-
Notifications
You must be signed in to change notification settings - Fork 0
/
01-data-and-operators.el
85 lines (65 loc) · 1.75 KB
/
01-data-and-operators.el
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
; -*- mode: Lisp;-*-
;; Chapter 1 - Data and Operators
(setq num 35.4)
(setq twelve 'dozen)
(numberp -45.67)
(numberp '3)
(numberp num)
(numberp twelve)
(numberp 'twelve)
(numberp (+ 2 3))
(numberp t)
(numberp (car '(15.3 -31.7)))
(numberp (cdr '(15.3 -31.7)))
(symbolp 15)
(symbolp num)
(symbolp 'num)
(symbolp twelve)
(symbolp 'twelve)
(symbolp nil)
(symbolp (car '(banana cream)))
(symbolp (cdr '(banana cream)))
(booleanp t)
(booleanp nil)
(booleanp (numberp 'a))
(booleanp (cons 'a '()))
;;https://www.gnu.org/software/emacs/manual/html_node/elisp/List_002drelated-Predicates.html
;; -- Function: consp object
;; This function returns ‘t’ if OBJECT is a cons cell, ‘nil’
;; otherwise. ‘nil’ is not a cons cell, although it _is_ a list.
;; -- Function: atom object
;; This function returns ‘t’ if OBJECT is an atom, ‘nil’ otherwise.
;; All objects except cons cells are atoms. The symbol ‘nil’ is an
;; atom and is also a list; it is the only Lisp object that is both.
;; (atom OBJECT) ≡ (not (consp OBJECT))
;; -- Function: listp object
;; This function returns ‘t’ if OBJECT is a cons cell or ‘nil’.
;; Otherwise, it returns ‘nil’.
;; (listp '(1))
;; ⇒ t
;; (listp '())
;; ⇒ t
;; elisp consp = pair? in scheme
(consp '(Ann Ben Carl))
(listp '(Ann Ben Carl))
(consp '(1))
(listp '(1))
(consp '()) ;==> nil
(listp '()) ;==> t
(consp '(()))
(listp '(()))
(consp '(a (b c) d))
(listp '(a (b c) d))
(consp (cons 'a '()))
(listp (cons 'a '()))
(consp (cons 3 4))
(listp (cons 3 4))
(consp 'pair)
(listp 'pair)
(null nil)
(null (cdr '(cat)))
(null (car '((a b))))
(functionp 'cons)
(functionp '+)
(functionp 'cons)
(functionp 100)