12 lines
433 B
Scheme
12 lines
433 B
Scheme
(define (make rcs targets . maybe-arg)
|
|
(let-optionals maybe-arg ((init-state (list)))
|
|
(let* ((common-rule-candidates (cdr rcs))
|
|
(rule-candidates (car rcs))
|
|
(rules (rcs->rules rule-candidates common-rule-candidates))
|
|
(rule-set (rules->rule-set rules))
|
|
(target-rules (map (lambda (t) (lookup-rule t rules))
|
|
targets)))
|
|
(map (lambda (t)
|
|
(rule-make t init-state rule-set))
|
|
target-rules))))
|