Last active
July 6, 2016 16:16
-
-
Save gtkatakura/193446285a49946062564772ffcb824a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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