Basic stats.
This commit is contained in:
parent
ed6d9913de
commit
e472292232
3 changed files with 11 additions and 2 deletions
|
@ -101,6 +101,7 @@
|
||||||
(print-members-base-info MB))
|
(print-members-base-info MB))
|
||||||
(newline))
|
(newline))
|
||||||
((print-stats)
|
((print-stats)
|
||||||
|
(newline)
|
||||||
(print-members-base-stats
|
(print-members-base-stats
|
||||||
(members-base-stats MB)))
|
(members-base-stats MB)))
|
||||||
)
|
)
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
member-student?
|
member-student?
|
||||||
member-nick
|
member-nick
|
||||||
member-id
|
member-id
|
||||||
|
member-existing?
|
||||||
member-record-tests!
|
member-record-tests!
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -129,6 +130,12 @@
|
||||||
(define (member-id mr)
|
(define (member-id mr)
|
||||||
(mr-ref mr 'id))
|
(mr-ref mr 'id))
|
||||||
|
|
||||||
|
;; Returns true if the member has joined.
|
||||||
|
(define (member-existing? mr)
|
||||||
|
(let ((joined (mr-ref mr 'joined)))
|
||||||
|
(and joined
|
||||||
|
(month<? joined (*current-month*)))))
|
||||||
|
|
||||||
;; Performs module self-tests.
|
;; Performs module self-tests.
|
||||||
(define (member-record-tests!)
|
(define (member-record-tests!)
|
||||||
(run-tests
|
(run-tests
|
||||||
|
|
|
@ -284,8 +284,9 @@
|
||||||
|
|
||||||
;; Returns a list two lists: keys, data.
|
;; Returns a list two lists: keys, data.
|
||||||
;; Each data record contains values for all keys.
|
;; Each data record contains values for all keys.
|
||||||
(define (members-base-stats mb)
|
(define (members-base-stats mb-arg)
|
||||||
(let ((keys '(month total active suspended students destroyed invalid)))
|
(let ((keys '(month total active suspended students destroyed invalid))
|
||||||
|
(mb (filter-members-by-predicate mb-arg member-existing?)))
|
||||||
(let mloop ((data '())
|
(let mloop ((data '())
|
||||||
(month (*member-default-joined*)))
|
(month (*member-default-joined*)))
|
||||||
(if (month<? month (*current-month*))
|
(if (month<? month (*current-month*))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue