Agência de web design


História

Sua empresa de design vem trabalhando principalmente com transformações CSS para construir páginas web. Depois de algumas conversas, vocês decidem começar a usar JavaScript para fazer alguns dos cálculos de forma dinâmica. Alguns dos seus colegas de equipe têm menos experiência com JavaScript, então você decide usar um closure para criar uma transformação reutilizável para pares de coordenadas {x, y}.

Tarefas

  • Crie uma função cujos argumentos são usados como closure em uma função retornada.

    • Uma função para uma translação 2D, em que a função externa especifica o quanto transladar, e a função retornada recebe uma coordenada x, y e retorna as coordenadas transladadas.
    • Uma função para uma escala 2D, em que a função externa especifica o quanto escalar, e a função retornada recebe uma coordenada x, y e retorna as coordenadas transladadas.
    • Uma função que retorna uma função que compõe duas funções, ou seja, uma função para g(f(x))
  • Crie uma função que memoiza uma função.

Implementações