Note: see the rest of the series so far.
I stumbled across this post the other day and problem 2 seems like something I can easily do in APL since it essentially requires you to interleave two arrays.
The problem is:
Write a function that combines two lists by alternatingly taking elements. For example: given the two lists [a, b, c] and [1, 2, 3], the function should return [a, 1, b, 2, c, 3].
Here’s the solution I have come up with:
since it uses both $latex \omega$ (right argument) and $latex \alpha$ (left argument) so it’s a dyadic function, let’s test it out:
$latex ‘a’ \ ‘b’ \ ‘c’ \ p2 \ 1 \ 2 \ 3$
=> a 1 b 2 c 3
Here’s how it works:
- concatenate the two arguments together, with the left argument first $latex (\alpha, \omega)$
- reshape $latex \rho$ the concatenated vector into 2 rows, so that you have effectively placed $latex \alpha$ and $latex \omega$ into a matrix, i.e.
a \ b \ c\\*
1 \ 2 \ 3$
- transpose that matrix
a \ 1\\*
b \ 2\\*
c \ 3$
- reshape $latex \rho$ the transposed matrix into a vector, and that’s it!