++ is used for concatenation. In this case it is concatenating the result of the function 'a' with the output of Splay.ar. Looking at it expended and with some debug posts will help clear that up:
play{
Splay.ar(
a = {|i|
RLPF.ar(
Trig.ar(
InFeedback.ar(i + [-1, 1] % 6 + 2).sum.abs.lag(1e-3) < 1e-4, 8e-3
),
{ 2**10.rand * 20 } ! 4, 1e-3, 0s).mean.sin
} ! 6,
0.5).debug("first") ++ a
};
a.debug("the variable 'a'");
Those debug statements will give us:
first: [ a BinaryOpUGen, a BinaryOpUGen ]
the variable 'a': [ an UnaryOpUGen, an UnaryOpUGen, an UnaryOpUGen, an UnaryOpUGen, an UnaryOpUGen, an UnaryOpUGen ]
Cheers,
Bion