Em qualquer linguagem de programação existente antes da pergunta, escreva um programa (não uma função) que produza os caracteres Hello world!
seguidos por uma nova linha. Seu programa:
- não deve usar nenhum caractere mais de uma vez (incluindo espaço em branco)
- deve usar apenas caracteres ASCII
- não deve usar nenhuma biblioteca interna
- não deve receber entrada (usuário, arquivo, nome do arquivo, variável do sistema, internet, nada)
- não deve produzir mais nada
O vencedor é quem tiver mais votos após 14 dias e cumprir as seis regras.
A sexta regra é que você não pode usar H9 +, HQ9 +, HQ9 + B, HQ9 ++, HQ9 + 2D, Olá, Olá +, Olá ++, Hexish, CHIQRSX9 + ou Fugue. Além disso, todas as respostas que exigem implementações mais recentes que esse desafio devem ser marcadas como não concorrentes.
Isenção de responsabilidade: Esta pergunta foi publicada com o pressuposto de que Olá, mundo! com repetição limitada não causou danos ao seu computador ou ao seu cérebro no processo de encontrar as respostas.
Respostas:
Perl 6 (
2928 caracteres)Isso foi um pouco chato, mas finalmente consegui fazer um programa para essa tarefa. Obrigado à grande comunidade # perl6 , por me ajudar nessa tarefa. Levei duas horas, espero que gostem. A saída está completamente dentro das especificações, incluindo uma nova linha.
Existem quatro tokens de interesse.
say
Isso gera o argumento com nova linha no final. A nova linha após o próprio comando é necessária como uma substituição de espaço.
Q[@A`DO world!]
Esta é a primeira string.
Q[]
é para strings brutas (comor""
em Python). Pode levar qualquer delimitador (ou par deles), neste caso[]
. Nesse caso, eu uso isso para aspas, não preciso de comportamento de string bruto.~|
Este é o operador stringwise (
~
) bitwise ou (|
).<HeLhg>
<>
é literal de lista, que ocupa uma lista de elementos separados por espaço. Nesse caso, ele possui um elemento e, usado como escalar, fornece uma string.fonte
Perl 5 com
-M5.010
, 29 bytesExperimente online!
Eu adquiri muito conhecimento desde que tentei isso pela primeira vez. Ainda não é tão curto quanto as outras respostas, mas é o melhor que consigo!
fonte
w
.Perl 5.10+: 24 caracteres
OK, acho que é o mais curto possível no Perl.
Execute com
perl -M5.010
(ou apenasperl -E
) para ativar osay
recurso Perl 5.10+ .fonte
ll
s ...Golfscript
4233Eu poderia muito bem resolver isso, considerando que eu tinha que ajustar parte do código e todos os dados no mesmo bloco, sem nenhuma maneira de delimitar os dois. Acho que esse é um resultado bastante curto. Diferentemente do meu primeiro envio, o código do bloco agora é uma parte totalmente integrada dos dados, portanto
{1
, não apenas inicie o bloco e coloque um1
na pilha, mas também os dados que definem oH
e assim por diante. A criação da matriz agora inclui a string de entrada vazia, o que significa que não preciso cortar o início, pois há apenas um caractere entre a string vazia e aH
, esse caractere é cortado quando eu pego cada segundo caractere e o vazio eventualmente, a string é exibida como nada.Demonstração on-line: http://golfscript.apphb.com/?c=ezF3WiRRZWleQWsgM2gtKXVsbXNvZ3I3fS5gKl0yJW4r
Define um bloco de código. Faz uma cópia do bloco de código e o converte em string. Usa o bloco de código para iterar sobre a string. Para cada iteração, o código fará uma cópia do valor do caractere anterior, ou com o valor atual do caractere e subtrairá 1. A sequência resultante terá os 6 primeiros caracteres removidos e cada segundo caractere removido. Finalmente, um avanço de linha é anexado.
"r iFNGDJUHv98oIMgtplbh4m" são apenas duas variáveis não declaradas, elas não fazem nada, mas são cuidadosamente construídas para produzir o resultado desejado.
Demonstração on-line: http://golfscript.apphb.com/?c=W3sxJF4ociBpRk5HREpVSHY5OG9JTWd0cGxiaDRtfS5gXCpdNj4yJW4rfonte
Vim 7.3, 18 pressionamentos de tecla
Copia a corda
Hello world
a partir deste helpfile , que infelizmente foi removido em mulheres que nunca versões do Vim.fonte
<Esc>
e combinações envolvendo a contagem Ctrl-chave como um byteBefunge-98 ,
3431 bytesExperimente online!
Usa vários métodos diferentes para evitar caracteres duplicados.
Primeiro, usamos literal de string de quebra automática para evitar o uso de dois
"
s. Isso adiciona "mundo!" para a pilha.Indo para a esquerda na segunda linha, adicionamos 9 ao extra
f
para fazero
o "Olá". Pegamosg
o caractere da célula 5,0 (l
) e o duplicamos. O'
é usado para buscar a letrae
. Multiplique 9 por 8 para obter 72, o valor ASCII deH
. Em seguida, imprimimos tudo usandock,
e invertemos a direção com o>
botão reutilizar,
para imprimir a nova linha (a
).fonte
+
ed
.Elixir , 37 bytes
Experimente online!
Não posso garantir que isso funcionaria em 2014, quando este desafio foi lançado, e o Elixir ainda estava antes da versão 1.0 (e, portanto, se é formalmente "competitivo", mas olhando para as notas de lançamento, acho que deveria ser). ESTÁ BEM). Enfim, estou feliz por finalmente ter encontrado uma solução válida para essa tarefa usando uma linguagem convencional de propósito geral que não seja Perl!
Passo a passo
fonte
Stax (não concorrente), 8 bytes
Experimente online!
Apenas uma literal de string compactada. Felizmente Stax me deixa ir sem o fechamento final.
fonte