Antes em javascript, quando eu queria acessar o início e o fim de um array de maneira funcional, eu fazia:
function head(l) {
return l[0];
}
function tail(l) {
return l.slice(1);
}
Agora, com o ES2015, posso apenas usar a desestruturação e ela sai da caixa:
l = [1, 2, 3, 4];
[hd, ...tl] = l;
console.log(hd) // 1
console.log(tl) // [2, 3, 4]