No idioma de sua escolha, escreva um programa que produz exatamente os caracteres Hello world!
seguidos por uma nova linha. O código:
- não deve usar nenhum caractere mais do que duas vezes (alfanumérico, símbolo, espaço em branco ... qualquer coisa)
- não deve usar nenhum recurso externo
- não deve usar nenhuma entrada do usuário
- não deve produzir mais nada
Um exemplo de um programa python válido:
print("He%so world!"%(2*'l'))
Um exemplo de um programa python inválido (o caractere 'r' é usado três vezes):
print("Hel"+chr(108)+'o world!')
O vencedor é quem tiver mais votos após 14 dias.
EDIT: Um vencedor foi escolhido! Obrigado a todos por seu trabalho nesta questão!
Respostas:
Ruby (1.9+)
Como este é um concurso de popularidade, vamos tentar não usar QUALQUER dos personagens de 'Hello world!' enquanto ainda estiver usando outros caracteres apenas no máximo duas vezes:
São 40 caracteres btw.
Bater
E este usa magia unicode.
Notas:
Código:
Para aqueles que não têm uma fonte adequada instalada, fica assim:
Aqui está o hexdump:
Você deve executá-lo em uma máquina onde o conjunto de caracteres padrão é utf-8. Eu tentei em um OSX10.8 usando o iTerm2 com o seguinte ambiente:
PHP 5.4
Isso usa zLib: (infelizmente usa os caracteres
e
eo
)Hexdump:
+1
Aqui está o código do ruby 2.0 que usei para testar duplicatas:
fonte
Hello world!
seguidos por uma nova linha"ascii//translit
transliterará os caracteres unicode para ascii básicos. E de eco do curso irá adicionar a nova linha, de modo que este se encaixa a especificação (se não consideramos a semelhança dos octetos)Hello World?
vez deHello World!
Você precisa usar idiomas mais expressivos.
Chinês,
6 43 caracteresA execução do google translate sobre isso produz
Hello world!
(obrigado @reservoir e @Quincunx pela atualização)
fonte
你好世!
喂世!
custas de ... bem, nada mais está realmente sendo gasto.HQ9 +, 1 caracter
mantendo-o simples :)
fonte
print Hello World
perguntas são realmentewho can submit a HQ9+ answer faster
perguntas.C, 192 caracteres
Como isso não é golfe, decidi me divertir e tentar usar todos os personagens exatamente duas vezes (colocando o mínimo possível em um comentário, porque isso é chato). Percebo que não me saí muito bem, já que meu código também contém uma tonelada de códigos "mortos" entediantes (não no sentido literal, mas no sentido de caracteres de espaço reservado usados apenas para atender ao requisito). Enfim, isso foi surpreendentemente difícil (mas divertido) com a limitação de dois caracteres, então, infelizmente, eu não consegui pensar em algo mais interessante. Isso me deu uma idéia para um novo problema ...
(Atualizado de acordo com o comentário de @ ugoren.)
fonte
.
usando-o para frações. Além disso, você pode declarar uma matriz e usar[]
..
; Eu só pensei em usá-lo para acesso struct. <s> Quanto às declarações de array, estou sem,
s devido àprintf
chamada e também sem;
s, por isso não tenho certeza de como poderia declarar um. </s> Duh, poderia substituirATION_
. ..Comando Vim (18 teclas)
iHe
Esc3al
Escio Wor
Rightd!
EnterNão repete o pressionamento de tecla mais de duas vezes.
Ele meio que viola a regra "user input", pois ainda é o usuário que precisa inserir essa sequência, mas suponho que se você armazená-lo como uma macro ou um nnoremap de antemão, isso contaria, já que você o está executando sem fazer explicitamente entrada para que isso aconteça.
Também precisa
nocompatible
ser definido, o que pode contar como o uso de recursos externos, por isso forneci outra variação abaixo:Comando Vim (21 teclas)
iHe
Esc3al
Escio Wor
Ctrl+[$ad!
EnterEssa variação não precisa
nocompatible
ser definida, embora funcione usando Esctrês vezes usando Ctrl+[em seu lugar.fonte
Right
,Esc
eEnter
, eles não são, literalmente, esses caracteres. O Vim lida com as teclas digitadas, que considero equivalentes aos caracteres para os propósitos deste concurso (e a regra "não repita mais do que duas vezes"). Eu só uso oi
pressionamento de tecla duas vezes e o<Right>
pressionamento de tecla uma vez. Quanto aE
, nunca o uso - mas uso<Esc>
duas e<Enter>
uma vez.l
segundos.:set nocompatible
.Right
não estou usando muito vim-y.Piet-- Nenhum personagem!
fonte
Perl, 29 caracteres
Esta resposta inclui tamancos com classificação x!
Perl, 23 caracteres
Mais curtos, mas sem sapatos porno. :-( A mesma idéia básica ...
Perl, 20 caracteres
Entediante...
fonte
Powershell, 20
fonte
Sclipting , 11 caracteres
Eu vi esse lindo programa HelloWorld na lista de programas Hello World da esolang .
fonte
Scala:
3429 caracteresEstou orgulhoso de mim mesmo por este:
Tivemos muita dificuldade em superar 'l', 'r', aspas e colchetes. Então descobri a antiga
printf
função Java , que felizmente converte números em letras quando é fornecido o%c
especificador de formato.Atualizar
MrWonderful fez uma coisa maravilhosa, apontando que vários caracteres podem ser salvos usando meu segundo 'l' manualmente na string!
fonte
printf
contém umr
como fazworld
. O mesmo vale para a cartao
usada mais de uma vez. Isso se baseia na minha interpretação da seguinte declaração do OP "Um exemplo de um programa python inválido (o caracter 'r' é usado três vezes):print("Hel"+chr(108)+'o world!')
"chr
Python 3 [38 bytes]
Eu não consideraria
import __hello__
um recurso externo.fonte
Perl: 34 caracteres
Exemplo de execução:
(Não é grande coisa. Postado apenas para usar pelo menos uma vez na minha vida
s///
com esses delimitadores sofisticados.)fonte
PHP, 33 caracteres
Eu simplesmente amo o quanto o PHP perdoa e entende!
Antes de ser excluído (ou, se ainda estiver lá, estou totalmente cego), vi um comentário dizendo "No brainf * ck?: D". Bem, é praticamente impossível escrever uma solução no BrainF * ck, como você sabe. Mas eu consegui codificar isso, apenas para o lulz.
Se você não possui um intérprete de BF, o código acima apenas imprime o do PHP: P
fonte
Hel
não está entre aspas. Também nunca ouvi falarstr_rot13
antes..
) colocando oHel
antes do<?=
.Hel<?=str_rot13("yb jbe")?>ld!
Violino HTML - 21 caracteres
fonte
\n
, então eu diria que<br>
a contagemr
é repetido na solução. Interpretei mal os requisitos?Ruby: 27 caracteres
Exemplo de execução:
Ruby: 25 caracteres
(Baseado no comentário de Vache.)
Ruby: 23 caracteres
(Cópia da resposta do PowerShell de Danko Durbić .)
fonte
puts 'He'+'l'*2+'o world!'
é um personagem mais curto!puts"He#{?l*2}o world!"
p
inclui aspas na saída. Eu prefiro manter rigorosamente o formato de saída necessário. Mas você está certo, o espaço não é necessário. Obrigado.JavaScript, 66 caracteres
Inspirado no FireFly, todos os caracteres usados por esse código são usados exatamente duas vezes.
fonte
C - 43 caracteres
Resultado
Contagem de caracteres
fonte
main
etc?i
).JavaScript [37 bytes]
Muito primitivo, não é?
fonte
nginx.conf
Em ação:
fonte
set
. Agora só tem 3 espaços, qualquer um dos quais pode ser uma guia!Comando Emacs (15 pressionamentos de teclas)
Se essa resposta do vim for legal, isso também deve ser :)
Brincadeiras à parte, macro pode se tornar muito :)
Mais bobagens à parte, provavelmente posso espremer um pouco mais, mas isso parece ser bom o suficiente por enquanto (já que ele supera o vim).
PS, por favor, ignore todas as minhas bobagens (eu (raramente, mas) uso o vim também!).
fonte
Befunge 98
Aqui está uma versão em que cada personagem aparece duas vezes.
Deixa um monte de lixo na pilha.
Como bônus, todo personagem tem algo a fazer com o IP.
fonte
Malbolge
fonte
Hello, world.
em vez deHello world!\n
:( Experimente online! Impressionante, mas inválido.Na verdade, eu não gosto de trapacear: P
Pitão
fonte
TypeError
.print("!dlrow os%eH"[::-1]%('l'*2))
trabalhe em ambas as versões (Python2 e Py3K).GolfScript
Substitui duas novas linhas (felizmente a terceira, necessária para a substituição, é fornecida pelo interno
n
), usando os dois tipos de literal de cadeia para evitar cópias quadruplicadas de aspas. Comol
é o único caractere que ocorre mais de duas vezes na string original, não é muito difícil.fonte
o
. As regras dizem que não é permitido ter um personagem mais do que duas vezes .Hmm.
Em C, dadas essas regras, só podemos ter uma
#define
(por causa dei
en
) e no máximo duas chamadas de função OU definições ((
e)
).Presumo que exista apenas uma maneira de fazer isso (embora eu provavelmente esteja errado):
fonte
puts()
vez deprintf()
.o
emworld
?BATER
Cred @manatwork
fonte
-e
usando o especial$'…'
sintaxe:echo $'Hel\x6c\x6f world!'
.C - 46 caracteres
main(){printf("He%clo wor%cd!\x0d",'l',108);}
Imprime:
fonte
main(){printf("He%clo world!%c",108,10);}
deve funcionar e economiza alguns caracteres.Fuga
No wiki da esolang:
E você pode ouvir o código fonte .
fonte
PHP
32 Chars
Observe como não estou usando um caractere mais do que duas vezes, pois l! = L
Observe também que, apesar do Stack Overflow excluí-lo na representação, há uma quebra de linha após o
!
.fonte
XQuery, 19 caracteres
fonte