#J, 26 bytes
J, 26 bytes
[:,@,./(0 1$~#)]`(|.@])/.]
ungolfed
[: ,@,./ (0 1 $~ #) ]`(|.@])/. ]
explanation
(0 1$~#)]`(|.@])/.]
Use Key/.
to split the input into the even/odd groups:(0 1$~#)
creates the group definition, by repeating 0 and 1 cyclically to the length of the input. We use the gerundial form of Key for its main verb]`(|.@])
, which applies the identity to the first group and reverses the second group:(|.@])
.- Now that we have the two groups, the odd one reversed, we just zip them together and flatten:
,@,./