# Recursive
With `recursive` you can easily make (indirectly) recursive functions without
worrying about stack overflows by marking them as `#[recursive]`:
```rust
use recursive::recursive;
#[recursive]
fn sum(nums: &[u64]) -> u64 {
if let Some((head, tail)) = nums.split_first() {
head + sum(tail)
} else {
0
}
}
```
Functions marked with `#[recursive]` will automatically grow the stack size if
it is too small when called. See the
[crate docs](https://docs.rs/recursive/latest/) for details.
## License
`recursive` is licensed under the MIT license.