En el idioma que elija, escriba un programa que muestre exactamente los caracteres Hello world!
seguidos de una nueva línea. El código:
- no debe usar ningún carácter más de dos veces (alfanumérico, símbolo, espacio en blanco ... cualquier cosa)
- no debe usar ningún recurso externo
- no debe usar ninguna entrada del usuario
- no debería generar nada más
Un ejemplo de un programa válido de Python:
print("He%so world!"%(2*'l'))
Un ejemplo de un programa de Python no válido (el carácter 'r' se usa tres veces):
print("Hel"+chr(108)+'o world!')
El ganador es el que tiene más votos después de 14 días.
EDITAR: ¡Se ha elegido un ganador! ¡Gracias a todos por su trabajo en esta pregunta!
Respuestas:
Rubí (1.9+)
Dado que este es un concurso de popularidad, tratemos de no usar CUALQUIERA de los personajes de '¡Hola mundo!' mientras sigue usando otros caracteres solo un máximo de dos veces:
Son 40 caracteres por cierto.
Golpetazo
Y este usa magia unicode.
Notas:
Código:
Para aquellos que no tienen una fuente adecuada instalada, se ve así:
Aquí está el hexdump:
Debe ejecutarlo en una máquina donde el juego de caracteres predeterminado es utf-8. Probé con un OSX10.8 usando iTerm2 con el siguiente entorno:
PHP 5.4
Esto usa zLib: (desafortunadamente usa los caracteres
e
yo
)Hexdump:
+1
Aquí está el código ruby 2.0 que usé para probar duplicados:
fuente
Hello world!
seguidos de una nueva línea"ascii//translit
transliterará los caracteres unicode a ascii básicos. Y, por supuesto, echo agregará la nueva línea, por lo que esta se ajusta a la especificación (si no consideramos la similitud de los octetos)Hello World?
lugar deHello World!
Tienes que usar lenguajes más expresivos.
Chino,
6 43 caracteresEjecutar google translate en esto produce
Hello world!
(gracias @sreservoir y @Quincunx por la actualización)
fuente
你好世!
喂世!
expensas de ... bueno, nada más se está gastando realmente.HQ9 +, 1 char
manteniéndolo simple :)
fuente
print Hello World
preguntas son en realidadwho can submit a HQ9+ answer faster
preguntas.C, 192 caracteres
Como esto no es golf, decidí divertirme e intentar usar cada personaje exactamente dos veces (mientras pongo la menor cantidad posible en un comentario, porque eso es aburrido). Me doy cuenta de que no lo hice terriblemente bien, ya que mi código también contiene una tonelada de código aburrido "muerto" (no en el sentido literal, sino en el sentido de los caracteres de marcador de posición utilizados para cumplir el requisito). De todos modos, esto fue sorprendentemente difícil (pero divertido) con la limitación de dos caracteres, por lo que desafortunadamente no pude encontrar nada más interesante. Sin embargo, me dio una idea para un nuevo problema ...
(Actualizado según el comentario de @ ugoren).
fuente
.
al usarlo para fracciones. También puede declarar una matriz y usarla[]
..
; Solo pensé en usarlo para el acceso a la estructura. <s> En cuanto a las declaraciones de matriz, estoy fuera de,
s debido a laprintf
llamada, y también estoy fuera de;
s, así que no estoy seguro de cómo podría declarar una. </s> Duh, podría reemplazarlaATION_
. ..Comando Vim (18 pulsaciones de teclas)
iHe
Esc3al
Escio Wor
Rightd!
EnterNo repite ninguna tecla más de dos veces.
Es un poco viola la regla de "entrada del usuario", ya que sigue siendo el usuario que necesita de entrada de esa secuencia, pero supongo que si lo guarda como una macro o un nnoremap de antemano que sería contar, ya que sólo está funcionando sin hacer explícita cualquier entrada para que esto suceda.
También requiere
nocompatible
que se configure, lo que puede contar como el uso de recursos externos, por lo que he proporcionado otra variación a continuación:Comando Vim (21 pulsaciones de teclas)
iHe
Esc3al
Escio Wor
Ctrl+[$ad!
EnterEsta variación no requiere
nocompatible
ser establecida, aunque funciona usando Esctres veces al usarla Ctrl+[en su lugar.fuente
Right
,Esc
yEnter
, no lo son, literalmente, esos caracteres. Vim se ocupa de las pulsaciones de teclas, que considero equivalentes a los personajes para los fines de este concurso (y la regla "no repetir más de dos veces"). Solo uso lai
tecla dos veces, y la<Right>
tecla una vez. En cuanto aE
, nunca lo uso, pero lo uso<Esc>
dos veces y<Enter>
una vez.l
s.:set nocompatible
.Right
no uso muy vim-y.Piet-- ¡Sin personajes en absoluto!
fuente
Perl, 29 caracteres
¡Esta respuesta incluye zuecos con clasificación x!
Perl, 23 caracteres
Más corto, pero no zapatos porno. :-( Sin embargo, la misma idea básica ...
Perl, 20 caracteres.
Aburrido...
fuente
Powershell, 20
fuente
Sclipting , 11 caracteres
Vi este hermoso programa HelloWorld en la lista de programas Hello World de esolang .
fuente
Scala:
3429 caracteresEstoy orgulloso de mí mismo por este:
Me costó mucho superar los duplicados 'l', 'r', comillas y corchetes. Luego descubrí la antigua
printf
función de Java , que felizmente convertirá números en letras cuando se le dé el%c
especificador de formato.Actualizar
¡MrWonderful hizo algo maravilloso al señalar que se pueden guardar un montón de caracteres usando mi segunda 'l' manualmente en la cadena!
fuente
printf
contiene unr
como lo haceworld
. Lo mismo ocurre con la letrao
que se usa más de una vez. Esto se basa en mi interpretación de la siguiente declaración del OP "Un ejemplo de un programa de Python no válido (el carácter 'r' se usa tres veces):print("Hel"+chr(108)+'o world!')
"chr
Python 3 [38 bytes]
No lo consideraría
import __hello__
como un recurso externo.fuente
Perl: 34 caracteres
Ejecución de muestra:
(No es gran cosa. Publicado solo para usar al menos una vez en mi vida
s///
con esos delimitadores elegantes).fuente
PHP, 33 caracteres
¡Me encanta cuánto perdona y entiende PHP!
Antes de que se eliminara (o si todavía está allí, estoy totalmente ciego), vi un comentario que decía "No brainf * ck?: D". Bueno, es casi imposible escribir una solución en BrainF * ck, como sabes. Pero logré codificar esto, solo para el lulz.
Si no tiene un intérprete BF, el código anterior solo imprime el PHP: P
fuente
Hel
no está entre comillas. Además, nuncastr_rot13
antes había oído hablar de él ..
) colocandoHel
antes de<?=
.Hel<?=str_rot13("yb jbe")?>ld!
HTML Fiddle - 21 caracteres
fuente
\n
así que diría que<br>
cuentar
se repite en la solución. ¿Interpreté mal los requisitos?Rubí: 27 caracteres.
Ejecución de muestra:
Rubí: 25 caracteres.
(Basado en el comentario de Vache).
Ruby: 23 caracteres
(Copia de la respuesta Powershell de Danko Durbić ).
fuente
puts 'He'+'l'*2+'o world!'
es un caracter mas corto!puts"He#{?l*2}o world!"
p
incluye citas en la salida. Prefiero mantener estrictamente el formato de salida requerido. Pero tienes razón, el espacio no es necesario. Gracias.JavaScript, 66 caracteres
Inspirado por FireFly, todos los caracteres utilizados por este código se usan exactamente dos veces.
fuente
C - 43 caracteres
Salida
Recuentos de personajes
fuente
main
etc.?i
).JavaScript [37 bytes]
Demasiado primitivo, ¿no?
fuente
nginx.conf
En acción:
fuente
set
. ¡Esto solo tiene 3 espacios ahora, cualquiera de los cuales podría ser una pestaña!Comando Emacs (15 pulsaciones de teclas)
Si ese vim responde es legal, entonces esto también debe ser :)
Bromas aparte, macro puede volverse también :)
Dejando de lado más tonterías, probablemente pueda exprimir un poco más, pero esto parece ser lo suficientemente bueno por el momento (ya que supera a vim).
PD: ignora todas mis tonterías (¡yo (rara vez, pero) también uso vim!).
fuente
Befunge 98
Aquí hay una versión donde cada personaje aparece dos veces.
Deja un montón de basura en la pila.
Como beneficio adicional, cada personaje tiene algo que hacer por IP.
fuente
Malbolge
fuente
Hello, world.
lugar deHello world!\n
:( ¡ Pruébelo en línea! Impresionante, pero no válido.En realidad no me gusta hacer trampa: P
Pitón
fuente
TypeError
.print("!dlrow os%eH"[::-1]%('l'*2))
funciona en ambas versiones (Python2 y Py3K).GolfScript
Sustituye dos líneas nuevas (afortunadamente, la tercera, necesaria para la sustitución, la proporciona el incorporado
n
), utilizando ambos tipos de cadenas literales para evitar copias cuadruplicadas de una comilla. Dado quel
es el único carácter que aparece más de dos veces en la cadena original, no es demasiado difícil.fuente
o
. Las reglas dicen que no está permitido tener un personaje más de dos veces .Hmm
En C, dadas estas reglas, solo podemos tener una
#define
(debido ai
yn
) y como máximo dos llamadas a funciones O definiciones ((
y)
).Supongo que hay una sola forma de hacerlo (aunque probablemente estoy equivocado):
fuente
puts()
lugar deprintf()
.o
enworld
?GOLPETAZO
Cred @manatwork
fuente
-e
utilizando el especial$'…'
sintaxis:echo $'Hel\x6c\x6f world!'
.C - 46 caracteres
main(){printf("He%clo wor%cd!\x0d",'l',108);}
Imprime:
fuente
main(){printf("He%clo world!%c",108,10);}
debería funcionar y le ahorrará algunos caracteres.Fuga
De la wiki de esolang:
Y puedes escuchar el código fuente .
fuente
PHP
32 caracteres
Tenga en cuenta que no estoy usando un personaje más de dos veces, ya que l! = L
También tenga en cuenta que, a pesar de que Stack Overflow lo elimina en la representación, hay un salto de línea después del
!
.fuente
XQuery, 19 caracteres
fuente