O desafio
Você recebe uma função compile(s: String): Integer
que retorna 0
se s
puder ser compilada e qualquer outra coisa que 0
não seja a falha (o código resultante não é importante).
O problema é que você não sabe para qual idioma a função é criada; portanto, cabe a você descobrir isso dando pequenos trechos de código à função e observando o que ela retorna. A parte boa é que uma equipe de cientistas tentou antes de você e reduziu a lista para C, C ++, C #, Java e JavaScript (essas são as únicas linguagens comuns que têm sintaxe semelhante em que eu poderia pensar).
Regras
- Aplicam-se as regras gerais de código-golfe.
- Não há formato de saída estrito; desde que seja legível e compreensível, tudo bem.
- Se esses 5 idiomas não forem suficientes, você poderá adicionar seus próprios favoritos e será recompensado com estrelas extras (★) (que não fazem nada).
Nota 1 : o compilador está atualizado com o padrão mais recente de qualquer idioma para o qual foi projetado.
Nota 2 : Eu sei que o JavaScript não é compilado , mas passa por algum processo de análise; se for um código JavaScript válido, ele passa
Respostas:
Comprimento total do snippet 8; programa de teste 83 (C)
Distinguir JavaScript e C de C ++, Java e C #
Distinguir JavaScript de C
Distinguir C ++ de C # e Java
Distinguir C # e Java
Código C para determinar o idioma
Snippets testados com
C: gcc 4.7.2 com -std = c99
C ++: g ++ 4.7.2 com -std = c ++ 11
Java: javac 1.7.0_09
JavaScript: JavaScript-C 1.8.5
C #: compilador Mono C # versão 2.10.8.0
fonte
#define C(x)compile(#x)?
economiza um espaço e muitas citações.C(#x)
não vai funcionar.