# IsCustomFunction

Determine whether a given object is a custom function.

## Method Signature

```
IsCustomFunction(object=[any], type=[string])
```

### Arguments

| Argument | Type     | Required | Description                                                                   | Default |
| -------- | -------- | -------- | ----------------------------------------------------------------------------- | ------- |
| `object` | `any`    | `true`   | The value to test for closure-ness.                                           |         |
| `type`   | `string` | `false`  | Check for a specific type of custom function - `UDF`, `Lambda`, or `Closure`. |         |

## Examples

### isCustomFunction Example

Here we've example to check the given variable is user defined function or not.

[Run Example](https://try.boxlang.io/?code=eJzjSivNSy7JzM9TyK0EMTU0Faq5OItSS0qL8hQMrblqucqLMktSXUpzCzQUMoudS4tL8nPdoHo0oJoUNBU0rbkA0i0ZNg%3D%3D)

```java

function myfunc() {
	return 1;
}
writeDump( isCustomFunction( myfunc ) );

```

Result: YES

### isCustomFunction Example

Here we've example to check the given variable is user defined function or not.

[Run Example](https://try.boxlang.io/?code=eJzLrUwrzUtWsFVQMlKy5iovyixJdSnNLdBQyCx2Li0uyc91A0qXZObnaSjkQpRqKmhacwEABtYSIg%3D%3D)

```java
myfunc = "2";
writeDump( isCustomFunction( myfunc ) );

```

Result: NO

### Additional Examples

[Run Example](https://try.boxlang.io/?code=eJwrL8osSXUpzS3QUMgsdi4tLsnPdSvNSy7JzM%2FTUChKTcwJdXFT0FTQtOYqx6eyoqICoqoktbgEKKxgC9NszRUB5BgS0A%2FTRtimCIgarjSoCMweDU2Fai7OotSS0qI8kHW1SEqArtNQcMyrVCjLz0xRACms5QIAOE1SOA%3D%3D)

```java
writeDump( isCustomFunction( realUDF ) );
writeDump( isCustomFunction( xxx ) );
testFun = realUDF;
X = 1;
writeDump( isCustomFunction( testFun ) );
writeDump( isCustomFunction( X ) );

function realUDF() {
	return 1;
}

function xxx( Any void ) {
}

```

## Related

* [ArrayIsEmpty](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/arrayisempty)
* [arrayIsEmpty](https://github.com/ortus-boxlang/boxlang-docs/blob/v1.x/boxlang-language/reference/built-in-functions/decision/arrayIsEmpty.md)
* [Attempt](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/attempt)
* [IsArray](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/isarray)
* [IsBinary](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/isbinary)
* [IsBoolean](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/isboolean)
* [IsClosure](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/isclosure)
* [IsDate](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/isdate)
* [IsDateObject](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/isdateobject)
* [IsDebugMode](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/isdebugmode)
* [IsDefined](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/isdefined)
* [IsEmpty](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/isempty)
* [IsFileObject](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/isfileobject)
* [IsIPv6](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/isipv6)
* [IsJSON](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/isjson)
* [IsLeapYear](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/isleapyear)
* [IsLocalHost](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/islocalhost)
* [IsNull](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/isnull)
* [IsNumeric](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/isnumeric)
* [IsNumericDate](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/isnumericdate)
* [IsObject](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/isobject)
* [IsQuery](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/isquery)
* [IsSimpleValue](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/issimplevalue)
* [IsStruct](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/isstruct)
* [IsValid](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/isvalid)
* [IsXML](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/isxml)
* [IsXmlAttribute](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/isxmlattribute)
* [IsXMLDoc](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/isxmldoc)
* [IsXMLElem](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/isxmlelem)
* [IsXMLNode](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/isxmlnode)
* [IsXMLRoot](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/isxmlroot)
* [LSIsNumeric](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/lsisnumeric)
* [structIsEmpty](https://boxlang.ortusbooks.com/boxlang-language/reference/built-in-functions/decision/structisempty)
