# Does Julia have tail call optimization?

**URL:** <https://discourse.julialang.org/t/does-julia-have-tail-call-optimization/64101>\
**Category:** General Usage\
**Tags:** question\
**Created:** [July 5, 2021, 7:34pm UTC](https://discourse.julialang.org/t/does-julia-have-tail-call-optimization/64101 "2021-07-05T19:34:17Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![purplishrock](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/purplishrock/32/13451_2.png) [@purplishrock](https://discourse.julialang.org/u/purplishrock)\
**Post date:** [July 5, 2021, 7:34pm UTC](https://discourse.julialang.org/t/does-julia-have-tail-call-optimization/64101/1 "2021-07-05T19:34:17Z")

</div>

does Julia have tail call optimization ?  
or does a recursive function always overflow regardless of if you are careful to construct it in that fashion ?

---

<div class="post-metadata">

**Author:** ![stevengj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevengj/32/71_2.png) [@stevengj](https://discourse.julialang.org/u/stevengj)\
**Post date:** [July 5, 2021, 7:40pm UTC](https://discourse.julialang.org/t/does-julia-have-tail-call-optimization/64101/2 "2021-07-05T19:40:13Z")

</div>

> [@purplishrock](#):
>
> does Julia have tail call optimization ?

No. It’s a very low priority since any tail-call algorithm is simpler to write as a loop. [https://github.com/JuliaLang/julia/issues/4964](https://github.com/JuliaLang/julia/issues/4964)

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [July 5, 2021, 7:45pm UTC](https://discourse.julialang.org/t/does-julia-have-tail-call-optimization/64101/3 "2021-07-05T19:45:09Z")

</div>

Let’s not have (yet another) TCO conversation on a thread asking a beginner question about recursion.

---

<div class="post-metadata">

**Author:** ![purplishrock](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/purplishrock/32/13451_2.png) [@purplishrock](https://discourse.julialang.org/u/purplishrock)\
**Post date:** [July 5, 2021, 7:47pm UTC](https://discourse.julialang.org/t/does-julia-have-tail-call-optimization/64101/4 "2021-07-05T19:47:37Z")

</div>

my bad, should have searched the forum first…  
it was intended as a yes/no question not something to start a discussion.

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [July 5, 2021, 7:50pm UTC](https://discourse.julialang.org/t/does-julia-have-tail-call-optimization/64101/5 "2021-07-05T19:50:10Z")

</div>

No problem. From experience I know this topic tends to lead to long discussions.
