diff -r c235e0aeb8df -r 539b2e88f5b9 progs/app6.scala --- a/progs/app6.scala Fri Oct 02 08:48:46 2015 +0100 +++ b/progs/app6.scala Fri Oct 02 23:44:14 2015 +0100 @@ -1,22 +1,18 @@ def simp(r: Rexp): Rexp = r match { case ALT(r1, r2) => { - val r1s = simp(r1) - val r2s = simp(r2) - (r1s, r2s) match { - case (NULL, _) => r2s - case (_, NULL) => r1s - case _ => if (r1s == r2s) r1s else ALT(r1s, r2s) + (simp(r1), simp(r2)) match { + case (NULL, r2s) => r2s + case (r1s, NULL) => r1s + case (r1s, r2s) => if (r1s == r2s) r1s else ALT(r1s, r2s) } } case SEQ(r1, r2) => { - val r1s = simp(r1) - val r2s = simp(r2) - (r1s, r2s) match { + (simp(r1), simp(r2)) match { case (NULL, _) => NULL case (_, NULL) => NULL - case (EMPTY, _) => r2s - case (_, EMPTY) => r1s - case _ => SEQ(r1s, r2s) + case (EMPTY, r2s) => r2s + case (r1s, EMPTY) => r1s + case (r1s, r2s) => SEQ(r1s, r2s) } } case NTIMES(r, n) => NTIMES(simp(r), n)