<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def reduction(input_type, output_type):
 """Define a user-defined reduction function that takes N pandas Series or scalar values as inputs and produces one row of output. Parameters input_type : List[ibis.expr.datatypes.DataType] A list of the types found in :mod:`~ibis.expr.datatypes`. The length of this list must match the number of arguments to the function. Variadic arguments are not yet supported. output_type : ibis.expr.datatypes.DataType The return type of the function. Examples -------- """

        return udf._grouped(
            input_type,
            output_type,
            base_class=ops.Reduction,
            output_type_method=operator.attrgetter('scalar_type'),
        )