protected function createImplodeFunction()
    {
        return new ExpressionFunction(
            'implode',
            function ($glue, $pieces) {
                return sprintf('implode(%s,%s)', $glue, $pieces);
            },
            function ($arguments, $glue, $pieces) {
                return implode($glue, $pieces);
            }
        );
    }