.TH Concat .PP String concatenation .SH Signature .PP .RS .nf concat(expr: AttrName|(Tuple->Numeric)) -> Aggregator .fi .RE .SH Examples .PP .RS .nf concat(:name) .fi .RE .PP .RS .nf concat(:name, between: ', ') .fi .RE .PP .RS .nf concat(between: ', '){|t| t.name } .fi .RE .PP .RS .nf concat(->(t){ t.name.upcase }, between: ', ') .fi .RE .SH Description .PP Concatenates string representations of input values. .SH Implementation notes .PP This aggregate function can be applied to any data type, not only String attributes. Ruby's \fB\fCto_s\fR will be used on values prior to concatenation. .PP The options are: .RS .IP \(bu 2 \fB\fCbefore\fR starts the resulting string (defaults to '') .IP \(bu 2 \fB\fCafter\fR ends the resulting string (defaults to '') .IP \(bu 2 \fB\fCbetween\fR is used between each value .RE .PP As of current Alf version, the order in which the values are concatenated is not guaranteed. So far, this function is thus non\-deterministic.