progs/display/enfa.scala
changeset 488 598741d39d21
parent 487 a697421eaa04
child 491 d5776c6018f0
equal deleted inserted replaced
487:a697421eaa04 488:598741d39d21
    17   // epsilon transitions
    17   // epsilon transitions
    18   def enext(q: A) : Set[A] = 
    18   def enext(q: A) : Set[A] = 
    19     applyOrElse(delta, (q, None))
    19     applyOrElse(delta, (q, None))
    20 
    20 
    21   def enexts(qs: Set[A]) : Set[A] = 
    21   def enexts(qs: Set[A]) : Set[A] = 
    22     qs | qs.flatMap(enext(_))
    22     qs | qs.flatMap(enext(_))     // | is the set-union in Scala
    23 
    23 
    24   // epsilon closure
    24   // epsilon closure
    25   def ecl(qs: Set[A]) : Set[A] = 
    25   def ecl(qs: Set[A]) : Set[A] = 
    26     fixpT(enexts, qs)
    26     fixpT(enexts, qs)
    27 
    27