Generalize period-based definitions lookup.

This commit is contained in:
Dominik Pantůček 2023-03-31 20:17:01 +02:00
parent 4a62102bc2
commit 51b3b6f5b7
2 changed files with 28 additions and 20 deletions

View file

@ -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)