Assuming a function takes 2 arguments and returns 2 values, for example

```
f(x,y)=x^2,y^2
```

now x and y are large vectors of size `N`

which cannot be splatted.

The ouptut of

`f.(x,y)`

is an array of tuples but I would like to have a tuple of size 2 (the number of return values) of 1-d arrays of size `N`

I found some tips using `zip`

and splatting, but it turned out to be really slow and impractical especially for larger arrays.

For now I preallocated the output arrays and then did a manual for loop to fill in the values using

```
out_x=Array{Float64}(N)
out_y=Array{Float64}(N)
for i=1:N
out_x[i], out_y[i] = f(x[i],y[i])
end
```

However, I thought there must be a solution somehow using loop fusion or at least something more simple here.

I’m on Julia 0.6.3. Any advice?

edit: fixed wording and missing i-index in input parameters