aboutsummaryrefslogtreecommitdiffstats
path: root/examples/types.bdl
blob: 43b7be900358922224ccceb08cf8b7e3ccd46304 (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
71
72
73
;;
;; Type testing.
;;

;; Boolean.
(print "(boolean? true) -> ")       (boolean? true)
(print "(boolean? false) -> ")      (boolean? false)
(print "(boolean? 1) -> ")          (boolean? 1)
(print "(boolean? 5) -> ")          (boolean? 5)
(print "(boolean? \"string\") -> ") (boolean? "string")
(print "(boolean? (+ 1 2 3)) -> ")  (boolean? (+ 1 2 3))
(print "(boolean? (not 1)) -> ")    (boolean? (not 1))

;; Empty list/null.
(print "(null? true) -> ")       (null? true)
(print "(null? false) -> ")      (null? false)
(print "(null? 1) -> ")          (null? 1)
(print "(null? 5) -> ")          (null? 5)
(print "(null? \"string\") -> ") (null? "string")
(print "(null? (+ 1 2 3)) -> ")  (null? (+ 1 2 3))
(print "(null? (not 1)) -> ")    (null? (not 1))
(print "(null? ()) -> ")         (null? ())

;; String.
(print "(string? true) -> ")       (string? true)
(print "(string? false) -> ")      (string? false)
(print "(string? 1) -> ")          (string? 1)
(print "(string? 5) -> ")          (string? 5)
(print "(string? \"string\") -> ") (string? "string")
(print "(string? (+ 1 2 3)) -> ")  (string? (+ 1 2 3))
(print "(string? (not 1)) -> ")    (string? (not 1))

;; Fixnum.
(print "(fixnum? true) -> ")       (fixnum? true)
(print "(fixnum? false) -> ")      (fixnum? false)
(print "(fixnum? 1) -> ")          (fixnum? 1)
(print "(fixnum? 5) -> ")          (fixnum? 5)
(print "(fixnum? \"string\") -> ") (fixnum? "string")
(print "(fixnum? (+ 1 2 3)) -> ")  (fixnum? (+ 1 2 3))
(print "(fixnum? (not 1)) -> ")    (fixnum? (not 1))

;; Symbol
;; TODO: We need quotation to test for symbols.
(print "(symbol? true) -> ")       (symbol? true)
(print "(symbol? false) -> ")      (symbol? false)
(print "(symbol? 1) -> ")          (symbol? 1)
(print "(symbol? +) -> ")          (symbol? +)
(print "(symbol? \"string\") -> ") (symbol? "string")
(print "(symbol? (+ 1 2 3)) -> ")  (symbol? (+ 1 2 3))
(print "(symbol? (not 1)) -> ")    (symbol? (not 1))
; (print "(symbol? 'a) -> ")         (symbol? 'a)
; (print "(symbol? 'c) -> ")         (symbol? 'c)

;; Pair.
(print "(pair? false) -> ")        (pair? false)
(print "(pair? 1) -> ")            (pair? 1)
(print "(pair? 5) -> ")            (pair? 5)
(print "(pair? \"string\") -> ")   (pair? "string")
(print "(pair? (+ 1 2 3)) -> ")    (pair? (+ 1 2 3))
(print "(pair? (not 1)) -> ")      (pair? (not 1))
(print "(pair? (cons 1 2)) -> ")   (pair? (cons 1 2))
(print "(pair? (list 1 2 3)) -> ") (pair? (list 1 2 3))

; ;; Procedure.
(print "(procedure? false) -> ")      (procedure? false)
(print "(procedure? 1) -> ")          (procedure? 1)
(print "(procedure? 5) -> ")          (procedure? 5)
(print "(procedure? \"string\") -> ") (procedure? "string")
(print "(procedure? (+ 1 2 3)) -> ")  (procedure? (+ 1 2 3))
(print "(procedure? (not 1)) -> ")    (procedure? (not 1))
(print "(procedure? +) -> ")          (procedure? +)
(print "(procedure? -) -> ")          (procedure? -)
(print "(procedure? procedure?) -> ") (procedure? procedure?)