summaryrefslogtreecommitdiffstats
path: root/internals.scm
blob: 76aed2c9e5bdaf6bcf832af0471256d6a9368b84 (plain) (blame)
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
;;;; Internal procedure definitions (all take a vec argument first)

;;; Sample call of an internal procedure from another internal procedure:
;;; (dcall dref/default vec dictionary key default)

;;; Notes on definitions:
;;; Vec argument is not used except to pass to dcalls
;;; External procedures with a rest argument use a list argument here
;;; External procedures with optional arguments are not optional here
 
(define-syntax dcall
  (syntax-rules ()
    ((dcall dproc vec dictionary arg ...)
     ((vector-ref vec dindex) vec dictionary arg ...))))

(define (idictionary? vec obj)
  (error "dictionary? method not defined"))

(define (idict-empty? vec dictionary)
  (= 0 (dcall dsize vec dictionary)))

(define (idict-contains? vec dictionary key)
  (dcall dref vec dictionary key
         (lambda () #f) (lambda (x) #t)))

(define (idict-ref vec dictionary key failure success)
  #f)

(define (idict-ref/default vec dictionary key default)
  #f)

(define (idict-set! vec dictionary . objs)
  #f)

(define (idict-adjoin! vec dictionary . objs)
  #f)

(define (idict-delete! vec dictionary . keys)
  #f)

(define (idict-delete-all! vec dictionary keylist)
  #f)

(define (idict-replace! vec dictionary key value)
  #f)

(define (idict-intern! vec dictionary key failure)
  #f)

(define (idict-update! vec dictionary key updater failure success)
  #f)

(define (idict-update/default! vec dictionary key updater default)
  #f)

(define (idict-pop! vec dictionary failure)
  #f)

(define (idict-map! proc vec dictionary)
  (error "dict-map method not defined"))

(define (idict-filter! pred vec dictionary)  
  (error "dict-filter! method not defined"))

(define (idict-remove! vec pred dictionary)
  #f)

(define (idict-search! vec dictionary key failure success)
  (error "dict-search! method not defined"))

(define (idict-size vec dictionary)
  (error "dict-size method not defined"))

(define (idict-for-each proc vec dictionary)
  (error "dict-for-each method not defined"))

(define (idict-count pred vec dictionary)
  #f)

(define (idict-any pred vec dictionary)
  #f)

(define (idict-every pred vec dictionary)
  #f)

(define (idict-keys vec dictionary)
  #f)

(define (idict-values vec dictionary)
  #f)

(define (idict-entries vec dictionary)
  #f)

(define (idict-fold proc knil vec dictionary)
  #f)

(define (idict-map->list proc vec dictionary)
  #f)

(define (idict->alist vec dictionary)
  #f)

(define model-vec #(
  idictionary?  idict-empty?  idict-contains?  idict-ref
  idict-ref/default idict-set!  idict-adjoin!  idict-delete!
  idict-delete-all!  idict-replace!  idict-intern!
  idict-update!  idict-pop!  idict-map!  idict-filter!
  idict-remove!  idict-search!  idict-size idict-for-each
  idict-count idict-any idict-every idict-keys
  idict-values idict-entries idict-fold idict-map->list
  idict->alist))