Generalize period-based definitions lookup.
This commit is contained in:
parent
4a62102bc2
commit
51b3b6f5b7
2 changed files with 28 additions and 20 deletions
|
@ -57,29 +57,11 @@
|
|||
|
||||
;; Convert into lookups - a list of (list period regular student)
|
||||
(define member-fees-lookup-table
|
||||
(map
|
||||
(lambda (src)
|
||||
(let* ((since0 (car src))
|
||||
(since (apply make-month since0))
|
||||
(before0 (cadr src))
|
||||
(before (if before0
|
||||
(apply make-month before0)
|
||||
#f))
|
||||
(regular (caddr src))
|
||||
(student (cadddr src)))
|
||||
(list (make-period since before)
|
||||
regular
|
||||
student)))
|
||||
member-fees-lookup-source))
|
||||
(make-period-lookup-table member-fees-lookup-source))
|
||||
|
||||
;; Returns a matching list of (list regular student)
|
||||
(define (lookup-member-fees)
|
||||
(let loop ((lst member-fees-lookup-table))
|
||||
(if (null? lst)
|
||||
#f
|
||||
(if (month-in-period? (caar lst))
|
||||
(cdar lst)
|
||||
(loop (cdr lst))))))
|
||||
(lookup-by-period member-fees-lookup-table))
|
||||
|
||||
;; Returns time-based fee for given type
|
||||
(define (lookup-member-fee type)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue