progs/app05.scala
changeset 788 3b1136fb6bee
parent 453 36e5752fa191
equal deleted inserted replaced
787:4b2496bc79b2 788:3b1136fb6bee
    10          else (ALT (r1s, r2s), F_ALT(f1s, f2s)) 
    10          else (ALT (r1s, r2s), F_ALT(f1s, f2s)) 
    11     }
    11     }
    12   }
    12   }
    13   ...
    13   ...
    14 }
    14 }
    15 
       
    16 def F_RIGHT(f: Val => Val) = (v:Val) => Right(f(v))
    15 def F_RIGHT(f: Val => Val) = (v:Val) => Right(f(v))
    17 def F_LEFT(f: Val => Val) = (v:Val) => Left(f(v))
    16 def F_LEFT(f: Val => Val) = (v:Val) => Left(f(v))
    18 def F_ALT(f1: Val => Val, f2: Val => Val) = 
    17 def F_ALT(f1: Val => Val, f2: Val => Val) = 
    19   (v:Val) => v match {
    18   (v:Val) => v match {
    20     case Right(v) => Right(f2(v))
    19     case Right(v) => Right(f2(v))