# Factorial

Factorial (`!`) is a monadic scalar function which gives the factorial of a non-negative integer. Factorial takes its glyph `!` from traditional mathematics but, like all monadic functions, takes its argument on the right `!Y` instead of traditional mathematics' $Y!$ . It shares the glyph with the dyadic arithmetic function Binomial.

## Examples

The factorial of a positive integer n is defined as the product of 1 to n inclusive.

```      !0 1 2 3 4
1 1 2 6 24
×/⍳4
24
```

## Extended definition

In multiple implementations, this function has an extended definition using the Gamma function $\Gamma (n)$ , so that it is defined for real and complex numbers. Because $\Gamma (n)$  equals $(n-1)!$ , `!Y` is defined as $\Gamma (Y+1)$ .

```      !¯1.2 0.5 2.7
¯5.821148569 0.8862269255 4.170651784
!2J1 ¯2J¯1
0.962865153J1.339097176 ¯0.1715329199J¯0.3264827482
```
Works in: Dyalog APL

The Gamma function diverges at 0 or negative numbers, so `!Y` is undefined at negative integers.

```      !¯1
DOMAIN ERROR
!¯1
∧
```
Works in: Dyalog APL

In J, where literal infinity is supported, negative integer factorial evaluates to positive infinity `_` (if the argument is odd) or negative infinity `__` (if even). This corresponds to the positive-side limit of the Gamma function.

```      !_1 _2 _3 _4
_ __ _ __
```
Works in: J