(define holder
(lambda ()
(let ((cache '()))
(lambda (lc expr LC LP LL)
(if (null? cache) (set! cache expr))
(if (and (= (modulo LP LL) 0)
(= (modulo LC lc) 0))
(set! cache expr))
cache))))