(define-module automata :exports (make-dfa) (import "sets.slime") (define (make-dfa Q S delta q0 F) (let ((q q0)) (lambda (s) (set! q (delta q s)) (list (if (set::contains? F q) :accept :fail) q)))) )