# Why is reduce with concatenation type unstable?

**URL:** <https://discourse.julialang.org/t/why-is-reduce-with-concatenation-type-unstable/45023>\
**Category:** General Usage\
**Tags:** question\
**Created:** [August 16, 2020, 5:41am UTC](https://discourse.julialang.org/t/why-is-reduce-with-concatenation-type-unstable/45023 "2020-08-16T05:41:32Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![yuyichao](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yuyichao/32/20_2.png) [@yuyichao](https://discourse.julialang.org/u/yuyichao)\
**Post date:** [August 16, 2020, 6:13am UTC](https://discourse.julialang.org/t/why-is-reduce-with-concatenation-type-unstable/45023/2 "2020-08-16T06:13:05Z")

</div>

> [@jishnub](#):
>
> I find this surprising as `vcat` does not behave like this:

But reduce is not splatting. What you are doing is equivalent to

`1`, `vcat(1, 2)`, `vcat(vcat(1, 2), 3)` etc…

> [@jishnub](#):
>
> Why is the type-unstable definition the default?

And this has nothing to do with type stability. It’s just how it must behave by the definition.

---

_[View the full topic](https://discourse.julialang.org/t/why-is-reduce-with-concatenation-type-unstable/45023)._
