Skip to content

Instantly share code, notes, and snippets.

@coproduto
Created May 12, 2024 17:43
Show Gist options
  • Save coproduto/0ecbacc3a0ad9a4e89a3fb1e4c3c395d to your computer and use it in GitHub Desktop.
Save coproduto/0ecbacc3a0ad9a4e89a3fb1e4c3c395d to your computer and use it in GitHub Desktop.
function ifSemElse(lol) {
if (!lol) return 0;
fazUmaCoisa();
return fazMaisCoisas(lol);
}
// Você até poderia escrever essa função assim:
function comElse(lol) {
if (!lol) {
return 0;
} else {
fazUmaCoisa();
return fazMaisCoisas(lol);
}
}
// mas o else nesse caso não está agregando
// absolutamente nenhuma informação e a
// remoção do else pode ser vista (com uma mente
// liberal) como aplicação de uma forma
// particular de Reverse CPS Transform,
// não alterando a semântica do programa.
@steinerkelvin
Copy link

steinerkelvin commented May 12, 2024

function comElseVazio(lol) {
  if (!lol) {
    return 0;
  } else {
    // não precisamos fazer nada pois a entrada foi validada corretamente UwU
  }

  fazUmaCoisa();
  return fazMaisCoisas(lol);
}

@devgaucho
Copy link

CPS é horrível e programação funcional é coisa de matemáticos. Vida longa ao else !
https://imgur.com/u8PJTzP.png

@MarcusXavierr
Copy link

function comElseVazio(lol) {
  if (!lol) {
    return 0;
  } else {
    // não precisamos fazer nada pois a entrada foi validada corretamente UwU
  }

  fazUmaCoisa();
  return fazMaisCoisas(lol);
}

Mas sem o else isso já não fica implicito?

@steinerkelvin
Copy link

Mas sem o else isso já não fica implicito?

Explícito é melhor que impUwUícito.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment