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))
|
||||
(newline))
|
||||
((print-stats)
|
||||
(newline)
|
||||
(print-members-base-stats
|
||||
(members-base-stats MB)))
|
||||
)
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
member-student?
|
||||
member-nick
|
||||
member-id
|
||||
member-existing?
|
||||
member-record-tests!
|
||||
)
|
||||
|
||||
|
@ -129,6 +130,12 @@
|
|||
(define (member-id mr)
|
||||
(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.
|
||||
(define (member-record-tests!)
|
||||
(run-tests
|
||||
|
|
|
@ -284,8 +284,9 @@
|
|||
|
||||
;; Returns a list two lists: keys, data.
|
||||
;; Each data record contains values for all keys.
|
||||
(define (members-base-stats mb)
|
||||
(let ((keys '(month total active suspended students destroyed invalid)))
|
||||
(define (members-base-stats mb-arg)
|
||||
(let ((keys '(month total active suspended students destroyed invalid))
|
||||
(mb (filter-members-by-predicate mb-arg member-existing?)))
|
||||
(let mloop ((data '())
|
||||
(month (*member-default-joined*)))
|
||||
(if (month<? month (*current-month*))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue