> For the complete documentation index, see [llms.txt](https://trizen.gitbook.io/sidef-lang/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://trizen.gitbook.io/sidef-lang/programming_tasks/c/compile-time_calculation.md).

# Compile-time calculation

The compile-time evaluation is limited at a constant expression, which cannot refer at any other user-defined data, such as variables or functions.

```ruby
define n = (10!)
say n
```

or:

```ruby
define n = (func(n){ n > 0 ? __FUNC__(n-1)*n : 1 }(10))
say n
```
