### Function

# Camel SExpFunc

since: 3.4

#### Declaration

    CamelSExpResult*
    (* CamelSExpFunc) (
      CamelSExp* sexp,
      gint argc,
      CamelSExpResult** argv,
      gpointer user_data
    )

#### Description [src]

Callback type for function symbols used with camel_sexp_add_function().

Available since: 3.4

This function is not directly available to language bindings.

#### Parameters

`sexp`

  Type: `CamelSExp`

  A `CamelSExp`.

  The data is owned by the caller of the function.

`argc`

  Type: `gint`

  Count of arguments.

`argv`

  Type: An array of `CamelSExpResult*`

  Array of values of the arguments.

  The length of the array is specified in the `argc` argument.
  The data is owned by the caller of the function.

`user_data`

  Type: `gpointer`

  User data as passed to camel_sexp_add_function().

  The argument can be `NULL`.
  The data is owned by the caller of the function.

#### Return value

Type: `CamelSExpResult`

Result of the function call, allocated by camel_sexp_result_new().

The data is owned by the called function.