En cualquier lenguaje de programación que existiera antes de hacer esta pregunta, escriba un programa (no una función) que muestre los caracteres Hello world!
seguidos de una nueva línea. Su programa:
- no debe usar ningún carácter más de una vez (incluido el espacio en blanco)
- solo debe usar caracteres ASCII
- no debe usar ninguna biblioteca incorporada
- no debe recibir información (usuario, archivo, nombre de archivo, variable del sistema, internet, cualquier cosa)
- no debería generar nada más
El ganador es el que tiene más votos después de 14 días y cumple con las seis reglas.
La sexta regla es que no puede usar H9 +, HQ9 +, HQ9 + B, HQ9 ++, HQ9 + 2D, Hello, Hello +, Hello ++, Hexish, CHIQRSX9 + o Fugue. Además, todas las respuestas que requieren implementaciones más recientes que este desafío deben marcarse como no competidoras.
Descargo de responsabilidad: esta pregunta se publicó con la suposición de que ¡Hola, mundo! con una repetición limitada no causó ningún daño a su computadora o su cerebro en el proceso de encontrar las respuestas.
Respuestas:
Perl 6 (
2928 caracteres)Esto fue algo molesto, pero finalmente logré hacer un programa para esta tarea. Gracias a la gran comunidad # perl6 , por ayudarme con esta tarea. Me tomó dos horas, espero que lo disfruten. El resultado está completamente a la altura de las especificaciones, incluida una nueva línea.
Hay cuatro fichas de interés.
say
Esto genera el argumento con una nueva línea al final. La nueva línea después del comando en sí es necesaria como reemplazo de espacio.
Q[@A`DO world!]
Esta es la primera cadena.
Q[]
es para cadenas sin formato (comor""
en Python). Puede tomar cualquier delimitador (o un par de ellos), en este caso[]
. En este caso, lo uso para citas, no necesito un comportamiento de cadena sin formato.~|
Este es el operador stringwise (
~
) bitwise u (|
).<HeLhg>
<>
es una lista literal, que toma una lista de elementos separados por espacios. En este caso, tiene un elemento y, usado como escalar, da una cadena.fuente
Perl 5 con
-M5.010
29 bytesPruébalo en línea!
He adquirido muchos conocimientos desde que intenté esto por primera vez. Todavía no es tan breve como las otras respuestas, ¡pero lo mejor que puedo encontrar!
fuente
w
.Perl 5.10+: 24 caracteres
Bien, creo que esto es tan corto como se pone en Perl.
Ejecute con
perl -M5.010
(o simplementeperl -E
) para habilitar la función Perl 5.10+say
.fuente
ll
s ...Golfscript
4233También podría jugar esto, teniendo en cuenta que tenía que ajustar parte del código y todos los datos en el mismo bloque sin ninguna forma de delimitar los dos. Creo que este es un resultado bastante corto. A diferencia de mi primer envío, el código de bloque ahora es una parte completamente integrada de los datos, por
{1
lo tanto , no solo comienza el bloque y coloca un archivo1
en la pila, sino que también son los datos los que definenH
, y así sucesivamente. La creación de la matriz ahora incluye la cadena de entrada vacía, lo que significa que no tengo que recortar el principio ya que solo hay un carácter entre la cadena vacía y elH
, ese carácter se corta cuando tomo cada segundo carácter, y el vacío La cadena finalmente se genera como nada.Demostración en línea: http://golfscript.apphb.com/?c=ezF3WiRRZWleQWsgM2gtKXVsbXNvZ3I3fS5gKl0yJW4r
Define un bloque de código. Hace una copia del bloque de código y lo convierte en cadena. Utiliza el bloque de código para iterar sobre la cadena. Para cada iteración, el código hará una copia del valor de carácter anterior, xor con el valor de carácter actual y restará 1. La cadena resultante tiene los primeros 6 caracteres eliminados, y cada segundo carácter eliminado. Finalmente se agrega un avance de línea.
"r iFNGDJUHv98oIMgtplbh4m" es solo dos variables no declaradas, no hacen nada, pero están cuidadosamente construidas para producir el resultado deseado.
Demostración en línea: http://golfscript.apphb.com/?c=W3sxJF4ociBpRk5HREpVSHY5OG9JTWd0cGxiaDRtfS5gXCpdNj4yJW4rfuente
Vim 7.3, 18 pulsaciones de teclas
Copia la cadena
Hello world
de este archivo de ayuda , que desafortunadamente se ha eliminado en las versiones nunca de Vim.fuente
<Esc>
y combinaciones que involucran la tecla Ctrl cuentan como un byteBefunge-98 ,
3431 bytesPruébalo en línea!
Utiliza bastantes métodos diferentes para evitar caracteres duplicados.
Primero, usamos literal de cadena de envoltura para evitar usar dos
"
s. Esto agrega "mundo!" a la pila.Yendo a la izquierda en la segunda línea, agregamos 9 al extra
f
para hacero
el "Hola". Escribimosg
el carácter de la celda 5,0 (l
) y luego lo duplicamos. El'
se utiliza para buscar la cartae
. Multiplique 9 por 8 para obtener 72, el valor ASCII deH
. Luego lo imprimimos todo usandock,
, y volteamos la dirección con>
para reutilizar,
para imprimir la nueva línea (a
).fuente
+
yd
.Elixir , 37 bytes
Pruébalo en línea!
No puedo garantizar que esto hubiera funcionado en 2014 cuando se publicó este desafío, y Elixir todavía era anterior a la 1.0 (y, por lo tanto, si está formalmente "compitiendo", pero mirando sus notas de lanzamiento, creo que debería ser OKAY). De todos modos, ¡estoy feliz de que finalmente encontré una solución válida para esta tarea usando un lenguaje convencional de propósito general que no sea Perl!
Tutorial
fuente
Stax (no competidor), 8 bytes
Pruébalo en línea!
Solo un literal de cadena comprimido. Afortunadamente, Stax me deja ir sin el backtick de cierre.
fuente