
[N.B.: questo codice andrebbe commentato]


SOLUZIONE 1:

def increment [n:Int ch:^Int] =
    ch!(+ 1 n)

run ( (new r:^Int
        ( increment![3 r]
        | r?m = printi!m
      ) )
    | (new s:^Int
        ( increment![5 s]
        | s?m = printi!m
    ) ) )



===================================

SOLUZIONE 2:

new lock:^[]
new result:^Int

def increment n:Int =
    result!(+ 1 n)

run ( lock![]
    |  lock?[] = ( increment!3
                 | result?m = ( printi!m
                              | lock![]
                 )            )
    |  lock?[] = ( increment!5
                 | result?m = ( printi!m
                              | lock![]
    )            )            )

