# Why are there all these strange stumbling blocks in Julia?

**URL:** <https://discourse.julialang.org/t/why-are-there-all-these-strange-stumbling-blocks-in-julia/92644>\
**Category:** New to Julia\
**Tags:** syntax, python\
**Created:** [January 7, 2023, 6:19pm UTC](https://discourse.julialang.org/t/why-are-there-all-these-strange-stumbling-blocks-in-julia/92644 "2023-01-07T18:19:30Z")\
**Posts on this page:** 1\
**Showing post:** 67

<div class="post-metadata">

**Author:** ![Eben60](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eben60/32/13475_2.png) [@Eben60](https://discourse.julialang.org/u/Eben60)\
**Post date:** [January 11, 2023, 8:39pm UTC](https://discourse.julialang.org/t/why-are-there-all-these-strange-stumbling-blocks-in-julia/92644/67 "2023-01-11T20:39:46Z")

</div>

> [@DNF](#):
>
> `return (a, b, c, d) `

I would write generally, without thinking much: `return (; a, b, c, d) ` , then you can use it any of the multiple ways:

```julia
(; a, b, d) = foo(x1) # correspondence by name
c = foo(x2).c
e = foo(x3).[2]
f = foo(x4).[:d]
g, _, h, j = foo(x5) # correspondence by position

```

---

_[View the full topic](https://discourse.julialang.org/t/why-are-there-all-these-strange-stumbling-blocks-in-julia/92644)._
