Recursão: deslocamento à esquerda por potências de dois

A operação de deslocamento à esquerda é semelhante à multiplicação por potências de dois; portanto, o processo é repetitivo e pode ser realizado de forma recursiva.

Cálculo de exemplo usando o operador de deslocamento à esquerda (<<):

10 << 3 = 10 * 2^3 = 10 * 8 = 80
-32 << 2 = -32 * 2^2 = -32 * 4 = -128
5 << 2 = 5 * 2^2 = 5 * 4 = 20

Escreva uma função recursiva que imite (sem usar <<) o operador de deslocamento à esquerda e retorne o resultado dos dois inteiros fornecidos.

Exemplos

shift_to_left(5, 2) ➞ 20

shift_to_left(10, 3) ➞ 80

shift_to_left(-32, 2) ➞ -128

shift_to_left(-6, 5) ➞ -192

shift_to_left(12, 4) ➞ 192

shift_to_left(46, 6) ➞ 2944

Observações

  • Não haverá valores negativos para o segundo parâmetro y.
  • Este desafio consiste em recriar a operação de deslocamento à esquerda; portanto, é proibido usar o operador diretamente.
  • Espera-se que você resolva este desafio por meio de recursão.
  • Uma versão iterativa deste desafio pode ser encontrada neste link.