Poliglotas intocadas

Sep 30 2020

Como o título diz, você deve criar um programa original no maior número de idiomas possível. Um programa original, tirado daqui , é:

Vamos definir um programa pristine como um programa que não tem nenhum erro, mas irá falhar se você o modificar removendo qualquer substring contígua de \$N\$caracteres, onde \$1 \le N < \text{program length}\$.

Por exemplo, o programa Python 2 de três caracteres

`8`

é um programa original ( obrigado, Sp ) porque todos os programas resultantes da remoção de substrings de comprimento 1 causam erros (erros de sintaxe na verdade, mas qualquer tipo de erro servirá):

8`
``
`8

e também todos os programas resultantes da remoção de substrings de comprimento 2 causam erros:

`
`

Se, por exemplo, `8fosse um programa sem erros, então `8`não seria puro porque todos os resultados da remoção da substring devem apresentar erros.

Você deve escrever, no maior número de idiomas possível, um programa original.

  • Seu programa deve produzir uma saída não vazia quando inalterado.

    • Esta saída pode ser o que você quiser, pode variar dependendo de diferentes entradas, ou qualquer outra coisa, desde que, quando executado, inalterado e sem entrada / vazia, ela produz uma saída não vazia (observe que 0, ou o valor nulo do seu idioma não está vazio).

    • A saída pode não ser para STDERR (ou o equivalente em sua linguagem), pois isso se enquadraria na definição de um "programa com erro" abaixo.

    • A saída não precisa ser consistente em todos os idiomas ou quando executada duas vezes no mesmo idioma.

  • Seu código deve funcionar em no mínimo duas linguagens distintas e deve ter pelo menos 2 bytes

  • Versões diferentes de um idioma não contam como idiomas diferentes. Portanto, Python 2 e Python 3 são considerados a mesma linguagem.

  • Seu programa deve ser puro em todos os idiomas usados

  • Um erro é definido como qualquer coisa que faz com que o programa falhe totalmente ao ser executado ou termine com um código de saída diferente de zero após um período de tempo finito.

  • Esta é uma pedra de roseta , então a resposta com mais idiomas vence

    • Em caso de desempate, a solução mais longa , em bytes, vence

Eu também estaria interessado em provas de impossibilidade para certos pares / grupos de línguas. Se você encontrar uma prova particularmente interessante, deixe-a nos comentários (ou, de preferência, um link para a redação completa), e eu o convido a postar como uma resposta para que eu possa premiá-la com uma recompensa se concordar que é especialmente interessante. Por favor , não publique essas provas a menos que eu tenha dito que as recompensarei com uma recompensa, não quero que todas as respostas sejam preenchidas por tais provas e as respostas reais sejam enterradas. Provas postadas sem minha solicitação não serão consideradas válidas

Respostas

4 Jonah Oct 01 2020 at 01:15

6 idiomas

Bash , 4 bytes

echo

Experimente online!

Zsh , 4 bytes

echo

Experimente online!

peixe , 4 bytes

echo

Experimente online!

tcsh , 4 bytes

echo

Experimente online!

ksh , 4 bytes

echo

Experimente online!

J , 4 bytes

echo

Experimente online!

Começar as coisas com um enfadonho. Se eu entendo as regras, acho que é legal.

Os shells são claros o suficiente e geram uma nova linha. A remoção de qualquer substring contígua resultará em "comando não encontrado".

Em J, echoé uma função incorporada e imprime seu argumento com uma nova linha acrescentada. J não tem funções de 0 argumento, então você tem que chamá-lo com algo. No entanto, tudo funciona, incluindo a string vazia '', que é a escolha convencional para chamar uma função quando o argumento não importa.