Finish member-format for nick and id.
This commit is contained in:
parent
cd6051e376
commit
f7d062f097
2 changed files with 19 additions and 3 deletions
|
@ -37,6 +37,7 @@
|
|||
member-nick
|
||||
member-id
|
||||
member-existing?
|
||||
member-format
|
||||
member-record-tests!
|
||||
)
|
||||
|
||||
|
@ -136,6 +137,23 @@
|
|||
(and joined
|
||||
(month<? joined (*current-month*)))))
|
||||
|
||||
;; Member formatting function for general use.
|
||||
(define (member-format fmt mr)
|
||||
(let loop ((fmtl (string->list fmt))
|
||||
(resl '()))
|
||||
(if (null? fmtl)
|
||||
(string-intersperse (reverse resl) "")
|
||||
(let ((ch (car fmtl)))
|
||||
(if (eq? ch #\~)
|
||||
(loop (cddr fmtl)
|
||||
(cons (case (cadr fmtl)
|
||||
((#\N) (mr-ref mr 'nick))
|
||||
((#\I) (number->string (mr-ref mr 'id)))
|
||||
((#\~) "~"))
|
||||
resl))
|
||||
(loop (cdr fmtl)
|
||||
(cons (make-string 1 (car fmtl)) resl)))))))
|
||||
|
||||
;; Performs module self-tests.
|
||||
(define (member-record-tests!)
|
||||
(run-tests
|
||||
|
|
|
@ -259,9 +259,7 @@
|
|||
(car sl))))
|
||||
(string-intersperse
|
||||
(map (lambda (mr)
|
||||
(sprintf "~A (~A)"
|
||||
(member-id mr)
|
||||
(member-nick mr)))
|
||||
(member-format "~N (~I)" mr))
|
||||
mrs))))
|
||||
|
||||
;; Returns dictionary with statistics about the members base.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue