# How to detect forms of tuples

**URL:** <https://discourse.julialang.org/t/how-to-detect-forms-of-tuples/14894>\
**Category:** General Usage\
**Created:** [September 13, 2018, 4:53am UTC](https://discourse.julialang.org/t/how-to-detect-forms-of-tuples/14894 "2018-09-13T04:53:40Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![LeoK987](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/leok987/32/4880_2.png) [@LeoK987](https://discourse.julialang.org/u/LeoK987)\
**Post date:** [September 13, 2018, 4:53am UTC](https://discourse.julialang.org/t/how-to-detect-forms-of-tuples/14894/1 "2018-09-13T04:53:40Z")

</div>

How best to detect if a passed-in tuple is

```julia
(a1, a2)

```

or

```julia
((a1, a2), (b1, b2))

```

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [September 13, 2018, 5:41am UTC](https://discourse.julialang.org/t/how-to-detect-forms-of-tuples/14894/2 "2018-09-13T05:41:50Z")

</div>

```julia
julia> ((1, 2), ("foo", :bar)) isa Tuple{Tuple{Any,Any}, Tuple{Any,Any}}
true

```

---

<div class="post-metadata">

**Author:** ![LeoK987](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/leok987/32/4880_2.png) [@LeoK987](https://discourse.julialang.org/u/LeoK987)\
**Post date:** [September 13, 2018, 5:49am UTC](https://discourse.julialang.org/t/how-to-detect-forms-of-tuples/14894/3 "2018-09-13T05:49:15Z")

</div>

Thanks for the response.

I hope being able to detect (a1, a2) because the tuple of tuples is variable length.

But this dones’t work:

```julia
julia> (1,2) isa Tuple{Any,Any}
true

julia> ((1,2), (2,3)) isa Tuple{Any,Any}
true

```

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [September 13, 2018, 5:57am UTC](https://discourse.julialang.org/t/how-to-detect-forms-of-tuples/14894/4 "2018-09-13T05:57:59Z")

</div>

```julia
julia> detect(v::Tuple{Any,Any}) = !(v[1] isa Tuple && v[2] isa Tuple)
detect (generic function with 1 method)

julia> detect(v) = false
detect (generic function with 2 methods)

julia> detect((1, 2))
true

julia> detect(((1, 2), (3, 4)))
false

```
