Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save gtkatakura/193446285a49946062564772ffcb824a to your computer and use it in GitHub Desktop.
Save gtkatakura/193446285a49946062564772ffcb824a to your computer and use it in GitHub Desktop.
const Estudo = Class.new do
public static void main(...args: string[]) {
Func<int, int, Number> somar = (x, y) => +$this->soma(new Integer(x), new Integer(y));
local left, right = args.map(Integer::parseInt);
puts resultado.call(left, right)
}
soma :: Integer -> Integer -> Integer
def soma(n1, n2):
+ n1 n2
end
/*
Definição de variável constante [JS]: `const Estudo = `
Criação de classe anônima [Ruby]: `Class.new`
Abertura do escopo da classe [Ruby]: `do`
Declaração do método estático principal [Java/C#]: `public static void main`
Definição do parâmetro `args` com `rest parameters` [JS]: `...args`
Definição da tipagem do parâmetro [TypeScript]: `: string[]`
Abertura do escopo do método [Java/C#]: `{`
Definição da variável delegator [C#]: `Func<>`
Definição dos tipos de entrada para o delegator [C#]: `int`
Definição do tipo de retorno para o delegator [JS]: `Number`
Expressão de função anônima atribuída ao delegator [JS]: `(x, y) => ()`
Conversão do retorno do método soma para Number [JS]: `+`
Chamada do método soma [PHP]: `$this->soma`
Conversão dos parâmetros `int` para `Integer` [Java]: `new Integer`
Definição de variáveis locais e destructuring dos parâmetros convertidos [Lua]: `local left, right`
Passagem do método de transformação usado para o mapeamento dos argumentos de entrada com Reference Method [Java]: `Integer::parseInt`
Escrita do valor na saída [Ruby]: `puts`
Chamada do delegator passando os parâmetros para a soma [Ruby]: `resultado.call`
Fechamento do escopo do método [Java/C#]: `}`
Definição de contrato de tipos do método soma [Haskel]: `soma :: Integer -> Integer -> Integer`
Definição do método soma [Python]: `def soma(n1, n2):`
Uso do operador plus para efetuar a soma entre dois elementos [Clojure]: `+ n1 n2`
Fechamento do escopo da classe [Ruby]: `end`
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment