# Is this pure?

**URL:** https://discourse.julialang.org/t/is-this-pure/8050
**Category:** General Usage
**Created:** [December 28, 2017, 10:20pm UTC](https://discourse.julialang.org/t/is-this-pure/8050 "2017-12-28T22:20:51Z")
**Posts on this page:** 1
**Showing post:** 6

<div class="post-metadata">

### Author: ![bramtayl](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bramtayl/32/3614_2.png) [@bramtayl](https://discourse.julialang.org/u/bramtayl)
#### Post date: [January 3, 2018, 1:09am UTC](https://discourse.julialang.org/t/is-this-pure/8050/6 "2018-01-03T01:09:31Z")

</div>

Ok, great! Since I have an expert here, to get constant propagation to work recursively, I need to define my own tail function:

```julia
Base.@pure argtail(x, rest...) = rest
tail(x) = argtail(x...)

```

Again, a `@pure` annotation is necessary here, even though `argtail` seems very pure.

---

_[View the full topic](https://discourse.julialang.org/t/is-this-pure/8050)._
