(class Concatenate is NuOperator (- (id) callWithArguments:(id)cdr context:(id)context is (set final ((cdr car) evalWithContext: context)) (set remaining (cdr cdr)) (until (eq (remaining length) 0) (set current ((car remaining) evalWithContext: context)) ; Append the current item onto the final sequence. (set final (final arrayByAddingObjectsFromArray: current)) ; Drop the first element from the remaining ones. (set remaining (remaining cdr))) final)) (global ++ (Concatenate alloc))