{Split L Test L1 L2}
: input stream L
, output
streams L1
,L2
-- dispatch condition
{Test M}
(if true append to L1
else to
L2
)
In the Actors model, this is known as the receptionist
pattern
proc {Split L Test L1 L2} P1 = {NewPort L1} P2 = {NewPort L2} in thread for M in L do if {Test M} then {Send P1 M} else {Send P2 M} end end end end