progs/enfa.scala
changeset 488 057b4603b940
parent 487 ffbc65112d48
child 491 7a0182c66403
equal deleted inserted replaced
487:ffbc65112d48 488:057b4603b940
    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