progs/re1.scala
changeset 479 4fcaa5a2d199
parent 477 28e872e7efb3
child 481 e2e13cc2c9d7
equal deleted inserted replaced
478:dfa7b4ca199f 479:4fcaa5a2d199
   113 
   113 
   114 size(EVIL1(1))  // 5
   114 size(EVIL1(1))  // 5
   115 size(EVIL1(3))  // 17
   115 size(EVIL1(3))  // 17
   116 size(EVIL1(5))  // 29
   116 size(EVIL1(5))  // 29
   117 size(EVIL1(7))  // 41
   117 size(EVIL1(7))  // 41
       
   118 
       
   119 
       
   120 // given a regular expression and building successive
       
   121 // derivatives might result into bigger and bigger
       
   122 // regular expressions...here is an example for this:
       
   123 
       
   124 val BIG_aux = STAR(ALT(CHAR('a'), CHAR('b')))
       
   125 val BIG = SEQ(BIG_aux, SEQ(CHAR('a'),SEQ(CHAR('b'), BIG_aux)))
       
   126 
       
   127 size(ders("".toList, BIG))              // 13
       
   128 size(ders("ab".toList, BIG))            // 51
       
   129 size(ders("abab".toList, BIG))          // 112
       
   130 size(ders("ababab".toList, BIG))        // 191
       
   131 size(ders("abababab".toList, BIG))      // 288
       
   132 size(ders("ababababab".toList, BIG))    // 403
       
   133 size(ders("abababababab".toList, BIG))  // 536
       
   134 
       
   135 
       
   136 size(ders(("ab" * 200).toList, BIG))    // 366808
       
   137