Desafio:
Na linguagem de programação de sua escolha, não entre e insira o nome da linguagem de programação.
Justo, certo?
Restrições:
- Você não pode usar nenhum caractere incluído no nome da sua linguagem de programação no seu código. Por exemplo, se eu usar o Lote, não devo usar os caracteres 'B' 'a' t '' c '' h 'no meu código. Observe que isso diferencia maiúsculas de minúsculas. Ainda posso usar o char 'b' porque é diferente de 'B'.
- Você pode ter "saída indesejada" antes ou depois do nome do idioma
- O número da versão não conta como parte do nome do idioma. Por exemplo, eu posso usar o número 3 no código na minha resposta se estiver no Python 3
- A saída do nome da linguagem de programação não diferencia maiúsculas de minúsculas.
- Forçar brutalmente todas as combinações possíveis de letras e esperar que você obtenha o nome do seu idioma é proibido.
Exemplo de saídas: (digamos que minha linguagem de programação se chama Language) (✔ se válido, senão ✖)
Language
✔Body language is a type of non-verbal communication in which physical behavior, as opposed to words, is used to express or convey information. Such behavior includes facial expressions, body posture, gestures, eye movement, touch and the use of space.
✔Language 2.0 - © 1078 AD some company
✔foobar
✖
Este é o código-golfe, portanto, o código mais curto vence.
--version
não é permitido"?Respostas:
Saídas para STDERR
A saída para STDERR agora está em + 33 / -21 como padrão permitido, o que é positivo, mas contestado. Esta é uma resposta CW para coletar respostas que apenas invocam um erro em um idioma em que as mensagens de erro incluem o nome do idioma.
Haskell, 1 byte
Erro:
Lua, 1 byte
Erro:
(o nome do arquivo não é importante)
Lote, 1 byte
Erro:
tinylisp, 5 bytes
Erro:
R, 1 byte
Erro:
Bytecode Java, 0 bytes
Erro:
Groovy, 1 byte
Observe que
a
pode ser substituído por qualquer outro caractereErro:
MATLAB, 1 byte
Erro:
PHP, 3 bytes
Erro:
CJam, 1 byte
Erro:
Galho, 2 bytes
Twig é uma linguagem de modelo escrita em PHP. É possível que seja poliglota.
Erro:
A mensagem varia dependendo do programa que você escolher.
SILOS , 2 bytes
Experimente online! Invoca trivialmente comportamento não documentado. Silos é o nome do idioma.
Python, 6 bytes
Como a restrição de caracteres não diferencia maiúsculas de minúsculas e a saída não precisa estar no caso correto, essa é uma resposta válida. A mensagem de erro que produz é algo como isto:
Experimente online! (gera para a guia 'debug')
JavaScript, 10 bytes
Isso produz a seguinte mensagem de erro ou similar em todos os ambientes:
QBIC , 6 bytes
Em 6 bytes, podemos colocar o erro encontrado QBIC: 9 na tela, significando um erro fora dos limites.
ForceLang, 2 bytes
Erro produzido:
Pip, 5 bytes
(Nota: isso funciona na versão atual até a presente data, 0.17.09.01 . Não há garantias de que o intérprete não será alterado para lidar com esse erro de maneira diferente no futuro.)
Tenta regex corresponder a um padrão sintaticamente inválido. O erro produzido será mais ou menos assim:
Stax, 2 bytes
Erro:
zh
também funciona.tinta, 1 byte
~
no início de uma linha, marca que a linha é uma instrução a ser executada, em vez de texto a ser impresso. Desde a versão que o TIO do inklecate estiver usando, se não houver nada após o~
, o intérprete trava com o seguinte erro:fonte
<??
será mais eficaz e não poderá ser desativado.SmileBASIC, 11 bytes
Equivalente a
SPSET 0,1474
. Define o sprite 0 na definição 1474, que é o logotipo do SmileBASIC.fonte
MATL , 1 byte
A saída é através do STDERR, que é permitido por padrão .
A saída do compilador offline é
Ou experimente online! (expanda a seção "depurar").
fonte
X
ouZ
. Isto é porqueX
,Y
ouZ
são prefixos de nomes de função e dois de char, assim que umY
por si é inválidaR, 1 byte:
T
é um alias para a constanteTRUE
. Portanto, a saída para o acima é:Como lixo é permitido em torno do nome, o "R" é o nome do idioma.
( Como observado em um comentário em outro lugar , praticamente qualquer letra e muitos glifos funcionarão igualmente bem porque acionam a mensagem "Erro: ...", que contém "r".)
fonte
HTML,
2420 bytesHTML, 16 bytes
Conforme apontado pelo @Bob , os navegadores modernos reconhecerão entidades HTML sem ponto e vírgula, embora seja HTML tecnicamente inválido. Claro, é perfeitamente válido para o código de golfe.
HTML, 4 bytes
E, claro, a resposta desinteressante.
Além disso, veja minha resposta CSS .
fonte
HTML
. Você pode salvar quatro caracteres adicionais eliminando os pontos e vírgulas, ao custo de ser HTML tecnicamente inválido (mas ainda trabalhando em navegadores modernos).HTML
conta?html
deve ser válido, reduzindo a pontuação em 12 bytes.Vim, 0 bytes
Quando você inicia o Vim, o editor exibe uma tela inicial parecida com esta:
Você pode vê-lo
Vim
aqui:Resposta anterior:
Vim, 1 byte
No Vim 8, pressionar será exibido
Type :quit<Enter> to exit Vim
na última linha. Não tenho muita certeza se isso conta.fonte
Python, 15 bytes
Python 2 (15)
Ele concatena as strings usa o octal
150
que éh
e"elp()"
e corre o resultado. Isso imprime ohelp()
comando que diz"Welcome to Python 3.5's help utility!"
, atendendo aos requisitos.Python 3 (17)
Experimente online!
fonte
help
, ele funciona apenas em um ambiente REPL.p
é permitido, masP
não é. Regra 1.C, 0 bytes.
Experimente online!
fonte
c
vem de fontes extremamente dependentes da implementação. Teria sido melhor se você pelo menos provocasse uma mensagem que contenhac
alguma saída padrão.Hein ?, 0 bytes
(não, não há nada nesse bloco de código)
O idioma é nomeado por sua saída, então ...
Na implementação que eu verifiquei , o intérprete pega o mod 8 de comprimento de cada linha de um determinado arquivo e alterna dependendo do resultado. Para zero, ele imprime
Huh?
. Como remove as novas linhas à direita, você também pode fazer uma\n
versão de 1 byte ( ).Observe que ele não está gerando stderr, caseswapping ou qualquer outro truque. É que o intérprete muito confuso de Huh? Finalmente veio a calhar.
fonte
V , 2 bytes
Experimente online!
A resposta óbvia é:
Experimente online!
Qual é "Insira a letra 'v' e alterne entre maiúsculas e minúsculas". No entanto, como você permite a saída de lixo eletrônico antes / depois do nome do idioma, isso também funciona.
O
¬
comando pega dois caracteres para entrada e insere todos os caracteres ASCII entre eles. Se não fornecermos o segundo caractere, o padrão será automaticamenteÿ
(ASCII 0xff); portanto, este programa insere todos os caracteres na codificação latin1 entreU
eÿ
.fonte
brainfuck , 54 bytes
Saídas
brainfuck
, assumindo uma fita de 8 bits aberta à esquerda. Experimente online!Como sempre, créditos parciais vão para o Hello, World! resposta .
Alternativas com invólucro diferente
Brainfuck (62 bytes):
BrainFuck (68 bytes):
fonte
MATLAB, 3 bytes
A saída é a seguinte. Informações irrelevantes foram substituídas por
[...]
). Algumas partes da saída podem mudar dependendo da versão, caixas de ferramentas instaladas etc.fonte
Octave
, então você não pode usarv
ee
.Python,
2753494845 bytes-3 bytes de @ wizzwizz4
Imprime o seguinte texto, que possui "Python" na primeira linha.
fonte
HELP()
ouHELP(HELP)
é mais curto.import this
.Python 2 (1 byte)
resultado...:
fonte
0xa0
(nbsp) ou basicamente qualquer outro byte que você goste e você receberá o mesmo erro!> <> ,
1210 bytesIsso será impresso continuamente> <> até que o intérprete fique sem espaço.
Experimente online!
Versão de 12 bytes abaixo para quem gosta de uma saída limpa. Recomendado por Aaron (sem erro, 1 saída)
fonte
"-o-o-o;_!\ _!
JAVA, 1 byte
A saída para o stderr é:
fonte
CSS, 25 bytes
Observe que a marcação extra é adicionada aos snippets de estouro de pilha, fazendo com que "CSS" seja exibido mais de uma vez. Abra um
.html
arquivo com conteúdopara ver o resultado como pretendido.
fonte
bash CLI, 9
Se você deseja um script real e não apenas um comando na linha de comando interativa, pode fazer o seguinte:
festança, 13
Saídas
/bin/bash
fonte
echo $0
deve funcionarx $0
funciona, assumindo que não há nenhum executável chamado x no caminho. Nesse caso, substitua qualquer outra letra, dígito ou caractere não especial.$'ec\x68o' $0
cura esse detalhe.C, 15 bytes
C compilado em uma máquina Linux com um código de idioma alemão:
main(){main();}
Ele será executado em um estouro de pilha e será impresso
Speicherzugriffsfehler
(alemão para falha de segmentação) no stderr.fonte
dc, 6
Saídas
dc
.Experimente online .
fonte
Pip , 8 bytes
Pega o caractere
I
eWR
aps emC
hr (80
), resultando emPIP
. Experimente online!Usando a
I
sensação de trapaça, então aqui estão duas soluções de 9 bytes que não usam nenhuma das seguintes opçõesPpIi
:Ambos de saída
pip
. Estou particularmente satisfeito com o segundo:Para uma capitalização adequada, precisamos de uma solução de 10 bytes :
Como este funciona é deixado como um exercício para o leitor. ; ^)
fonte
C #,
6067 bytesfonte
\u0043
eConsole
mas não posso usar deC
acordo com as regras da pergunta. Em C #, você pode usar seqüências de escape Unicode em identificadores._=>System.\u0043onsole.Write("\x43\x23");
brainfuck, 105 bytes
Experimente online aqui
fonte
---
na sua redução?R , 11 bytes
Experimente online!
fonte
version$l
9 bytesversion
é o suficiente (7 bytes)J, 2 bytes
a.
retorna o alfabeto do idioma J - uma lista interna de todos os bytes.Meu original: 4 bytes
Isso me parece bem legal. A raiz quadrada (
%:
) do negativo 1 (_1
) é i (0j1
).fonte
a.
. Imprime o alfabeto, que obviamente inclui 'J'. Definitivamente não é tão legal assim: /BASIC (ZX Spectrum),
42 bytesriscado 4 ainda é regular 4
Economizou 2 bytes graças a @ShaunBebbers.
Nota: No conjunto de caracteres do ZX Spectrum, esses bytes são exibidos como
Quando você digita isso, o Spectrum começa analisando um número opcional seguido por uma linha de código. Normalmente, o número da linha é o
1..9999
que faz com que o código seja adicionado ao programa armazenado. No entanto, se nenhum número de linha for fornecido, o código será executado imediatamente. Infelizmente, um bug no Spectrum significa que ele confunde um número de linha zero com nenhum número de linha, mas ainda tenta executar o zero como parte da linha de código, o que é ilegal, causando o erro.A versão anterior de 4 bytes gera um erro verdadeiro em vez de depender de um erro de intérprete:
Nota: No conjunto de caracteres do ZX Spectrum, esses bytes são exibidos como
quais saídas
porque a cadeia vazia não é uma expressão numérica válida. (É claro que eu poderia ter usado qualquer declaração que use um único número inteiro.) Se essa resposta for inaceitável, por 6 bytes você poderá escrever um programa que consiste em uma única linha com uma das palavras-chave que não aceita argumentos e, em seguida, use
POKE
para substituir com uma palavra-chave ilegal e tenteRUN
o programa.fonte
0 REM
produz o mesmo erroC
2420 bytes (clique 3.8.1)Obrigado a @squeamish ossifrage por me ajudar a economizar 4 bytes.
fonte
putchar(67);
?printf('c')
também não seria válido? Você não tem permissão para usar maiúsculas "C", mas é minúsculo e o resultado não diferencia maiúsculas de minúsculas.67
é menor do que'c'
:-)printf
precisa de umchar *
modo preciso usar""
Perl 5, 36 bytes (35 + 1 para
-E
)Corra com a
-E
bandeira.A variável
$^X
é o caminho para o executável que está executando o programa atual. Como o intérprete Perl é chamadoperl
, precisamos colocar a primeira letra em maiúscula. Mas aucfirst
função contém umr
, o que não é permitido, portanto, precisamos recorrer a\U
e\E
, que ativam e desativam a conversão em maiúsculas.Não podemos usar o
/r
modificador paras///
retornar a sequência alterada porque ar
não é permitida.É importante saber que o nome da linguagem de programação Perl é Perl , e o nome do intérprete é perl com letras minúsculas
p
. Não há PERL .fonte
perl -v
satisfaz as restrições do desafio, mas isso é muito mais interessante :) Embora faça suposições que não se apliquem a todos os sistemas (por exemplo,$^X
é/home/foo/.plenv/versions/5.16.3/bin/perl5.16.3
para mim, mas poderia ser melhor/home/foo/python
se eu estivesse distorcido dessa maneira) )perl -v
não há nada no Perl. Então eu acho que não conta. Mas acho que existem maneiras mais fáceis. Sobre os diferentes sistemas, acho que podemos corrigi-lo com um pouco mais de magia regex.perl -E'say$^X'
.-E'say`$^X -v`'
? É um programa indiscutível.Quarto, 5 bytes
Experimente online
Imprime uma lista de todas as palavras no idioma.
Forth
acontece de estar na lista (primeira palavra na linha 125), embora eu não saiba o que faz.fonte
R, 10 bytes
Saídas:
Bastante detalhado apenas para ter
R
o nome para aparecer certo?Do comentário de @ djhurio a esta resposta usando R,
version
também funciona.fonte
"r"
? Ou, dependendo do estrito "Você pode ter" saída de lixo eletrônico "antes ou depois do nome do idioma". você também pode fazerT
.r
ouR
, portanto, outra abordagem é produzir para STDERR através de um erro de sintaxe.)
saídasError: unexpected ')' in ")"
, que contém umr
.