Su objetivo es escribir "¡Hola, mundo!" (menos las comillas). Este es un concurso de popularidad , por lo que gana la mayoría de los votos. La longitud del código se usará para romper los lazos.
Todo vale, siempre que esté dentro de las siguientes reglas:
- Todos los caracteres deben ser letras o números, por lo que solo puede usar caracteres en la cadena "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".
- Todo el código que use debe estar en un archivo, con la excepción de los módulos / clases importados / como se llamen en su idioma favorito.
- Solo se permiten las bibliotecas / marcos estándar para el idioma de su elección (por ejemplo, el módulo Math de Python está permitido, pero Numpy, Scipy y Pygame no lo están). Permitiré TkInter ya que es el estándar de facto para GUI en Python.
- No se permite la entrada, ya sea leyendo desde stdin, leyendo un archivo, mostrando una imagen o leyendo desde la web.
+10 puntos de brownie si descubres cómo hacerlo en Java sin doblar las reglas.
En tus marcas, prepárate, código!
EDITAR: se permiten llaves ({}), corchetes ([]) y paréntesis (()) ya que esto sería prácticamente imposible para la mayoría de los idiomas sin ellos. También estoy eliminando la regla de límite de caracteres. Esperemos que esto lo haga más interesante.
EDITAR ^ 2: el espacio en blanco también está permitido. Mi cerebro no funciona correctamente, lo siento. >. <
popularity-contest
restricted-source
hello-world
nosotros C
fuente
fuente
;
¿ no ? ¿Cómo puedo escribir algo en C?72 101 108 108 111 44 32 87 111 114 108 100 33{a.
requiere el período al final para funcionar, y un camino deu:
manera similar requiere dos puntos. Sin.
y:
no somos nada.Respuestas:
Perl
Algunos dicen que Perl es un lenguaje lleno de ruido ascii y símbolos aleatorios como
$
... Eso no es cierto: Pfuente
s/PATTERN/REPLACEMENT/FLAGS
, pero en realidad puedes usar casi todo lo que quieras en lugar de las barras. El código aquí usa "z" en lugar de barras y convierte (nada) en "Helloq Worldm" y luego reemplaza "q" por chr 44 (usando la bandera \ e para evaluar REPLACEMENT aka "chr 44" como una expresión) que es ", ". Luego reemplaza "m" con chr 33, un "!", Y lo imprime.q//
, cualquier delimitador puede ser utilizado,q!! q** q\\ q;;
. Algunas excepciones son que para cerrar(
utiliza)
,q() q[] q{} q<>
y que al utilizar un alfanumérica como delimitador, debe estar separada del operador a la ambigüedad no permitir, por ejemploq qq
,q 66
. Los mismos trucos se aplican a otros operadores tipo comillas.do
fuente
switch(putchar(72)){}switch(putchar(101)){}
, etc.putchar(putchar(108))
(editar - BBC basic se movió a una respuesta separada como se sugiere. La mayoría de los votos sobre esto son definitivamente para la respuesta LOGO).
LOGO
Intérprete en http://www.calormen.com/jslogo/#
Salida (el triángulo verde es el cursor de tortuga)
fuente
Applescript
No hay paréntesis
[]
, llaves{}
ni paréntesis()
en este caso:Salida es:
fuente
set s to s as list
transforma"H"
en{"H"}
(una lista). En otros lenguajes, como Java, suele ser mucho más complicado hacerlo.Golpetazo
Este tipo de trabajo, si entrecierra los ojos:
fuente
banner Hello World
ofiglet Hello World
,
y!
. De lo contrario, solo usaría el viejoecho
.base64
Satisface las reglas originales.
fuente
"
Pitón
Entonces, ¿qué, asumimos que todos leen horizontalmente? Para aquellos usuarios que les gusta leer verticalmente:
fuente
sys.stdout.write
es la forma estándar de generar texto sin líneas nuevas en la mayoría de las versiones de Python (el comportamiento cambia ligeramente en 3.0). No podemos hacer eso aquí debido a los períodos.Polyglot: HQ9 +, H9 +, HQ9 ++, CHIQRSX9 +, HQ9 + B y HQ9 + 2D (1 byte)
Gracias @victor por la lista de idiomas.
fuente
OMGROFL
Soy un gran admirador de los lenguajes esotéricos. Afortunadamente, OMGROFL es alfanumérico:
El
iz
comando establece un valor en una variable, en este casolol
,lool
yloool
sirve como variables ...los
rofl
comando repite el ASCII equivalente al número almacenado en la variable.El
stfu
comando termina el programa;)fuente
COBOL
Se requieren algunos cambios para convertirse en una fuente verdaderamente alfanumérica únicamente.
PROGRAM-ID se puede descartar. Obtiene un nombre de programa generado (ver mensajes).
ALMACENAMIENTO DE TRABAJO se puede dejar caer. Nuevamente el compilador gime.
Dado que a estas dos líneas les faltaban puntos completos / períodos, que ya no son relevantes ahora que faltan por completo las descripciones, el número de mensajes de error es el mismo que antes y aún no afecta el código generado para el programa.
Al cambiar COMP-5 a COMP, las cláusulas VALUE ya no están permitidas, ya que COMP 9999 tiene solo cuatro dígitos decimales, mientras que COMP-5 es un binario de dos bytes con todos los valores de bits disponibles.
Los valores en los MOVE son los valores decimales que dan los valores binarios que dan los pares de caracteres.
Aunque los campos COMP tienen cuatro dígitos y no permiten cláusulas VALUE con más de cuatro dígitos, puede usar más dígitos en el MOVE de un valor literal sin truncamiento en ese punto ... no me pregunte por qué. La opción del compilador DIAGTRUNC (que he desactivado) producirá diagnósticos de advertencia para estos.
La opción de compilador TRUNC (BIN) podría usarse para tratar COMP como COMP-5, pero los MOVE son otra forma de hacerlo.
Como es COBOL, la salida debe estar en MAYÚSCULAS (una mentira, pero solo por diversión).
OK, cedido, ahora produce:
Lo cual, al ser un número impar de caracteres, requirió algunos cambios adicionales, ya que no podemos tener campos binarios de números impares con este compilador. ¡Mira esa línea de 13 X! Normalmente se escribiría como X (13), pero puede ser como he mostrado ...
Y ORTEXT es necesario (o no OR, de todos modos) como nombre porque OR es una palabra reservada para el compilador (significa OR, por supuesto).
Estos son valores EBCDIC, no ASCII, ya que se ejecuta en un cuadro compatible con EBCDIC y Big Endian.
Oh, COBOL requiere muchas paradas completas / períodos. Los dejé fuera (están prohibidos), así que recibí muchos mensajes de compilación. Acabo de decirle al compilador que genere el código de todos modos (ninguno de los mensajes está relacionado con el código objeto).
Incluso sin DIAGTRUNC, los mensajes ahora son hasta 17 ...
fuente
-
esté permitidoRuby (usando solo alnums y espacios en blanco)
Salida:
Hello, World!
fuente
Javascript
Use la consola del navegador para probar.
fuente
JavaScript
fuente
FERNANDO
fuente
Rebol
Solución alfanumérica única:
Arriba hay una actualización que utiliza la excelente sugerencia del Dr. Rebmu
add space 1
(que produce!
) para llegar a todos los personajes.A continuación se muestra la versión original:
Versión más corta con soportes:
E incluso versión más corta con tirantes:
Y la versión más corta con brackets y brackets:
Rebol usa llaves
{}
para las citas de varias líneas. Tan completamente válido bajo cambios de reglas, pero no del todo en mi espíritu (en mi humilde opinión) como mis dos primeras respuestas anteriores.NÓTESE BIEN. Imprimir el
!
fue un dolor!Rebol permite y utiliza caracteres de puntuación de forma rutinaria para nombres de funciones y tipos de datos. Por lo tanto, las opciones como
to-char 33
oto char! 33
no se permitirían según las reglas (a pesar de que estos signos de puntuación no son operadores en sí).Afortunadamente, encontré una manera descarada al convertir el objeto del sistema Rebol:
make object! [...]
en una cadena y Cherry lo seleccionó!
:)Actualización: Y ahora también la cereza eligió una coma del texto de la licencia en el objeto del sistema.
fuente
!
no está permitido-
o!
lo que ahora puede eliminar el voto hacia abajodo
Utiliza solo caracteres alfanuméricos, espacios y llaves {}, corchetes [] y paréntesis ().
printf () acepta un char * como argumento, pero como no podemos usar comillas ("), escribo la cadena como una matriz larga y larga. Los valores que se ven aquí son cadenas ASCII, en little endian (0x48 = H, 0x65 = e, 0x6c = l, y así sucesivamente). Lo escribí en letra larga [] ya que de esa manera puedo pasar un argumento de 8 bytes y, por lo tanto, usar solo dos llamadas printf () en lugar de cuatro.
fuente
BBC BASIC
Emulator en bbcbasic.co.uk
Separado de mi respuesta LOGO.
La manera fácil
Los números a la derecha son solo códigos ASCII. Esto es lo mismo que imprimir. Si se me permitiera una coma, podría hacerlo en una sola línea (
VDU 72,101,108,etc.
)Una forma más creativa
fuente
Mathematica
fuente
corriente continua
DC es casi la herramienta perfecta para el trabajo.
El
P
comando DC extrae un número de la pila y envía su representación de computadora sin procesar a STDIO. Al ver como5735816763073854918203775149089 = 0x48656C6C6F2C20576F726C6421
, que se representa como0x21, 0x64, 0x6C... = 'H', 'e', 'l'...
en una arquitectura little-endian, saleHello, World!
.fuente
16i48656C6C6F2C20576F726C6421P
JavaScript!
Y dijeron que no se podía hacer ... ¡Sin operadores de asignación, sin concatenadores, sin comillas! Arghhhh!
No temas ... Porque la fuerza
with
eres tú ...fuente
Javascript
Actualización: se las arregló para cortar un montón de personajes mediante la introducción de una función Mundial también.
Otra solución de Javascript que escribe en console.log:
Inspirado por esta entrada .
Primero, defino funciones llamadas Hola y Mundo. Esto se usará más adelante.
Entonces comienzo mi cadena de anidadas. Los
with (console)
ywith (String)
se utilizan para que luego pueda invocarconsole.log
yString.fromCharCode
sin usar un punto.El plan ahora es construir la cadena
Hello, World!
abusando de los anidados. Cada vez que invoqué concat (), la cadena resultante será el contexto en el siguiente bloque con. Tomo un atajo para obtener rápidamente"Hello"
accediendo a laname
propiedad de laHello
función. Luego concateno los caracteres de coma y espacio usandoString.fromCharCode
.El siguiente truco es conseguir el
"World"
parte de la cadena. No puedo usar el mismo método que solía obtenerHello
, ya que no puedo invocar World.name. En cambio, pongo esa lógica dentro del método World, y la invoco.Finalmente, agrego el signo de exclamación final y envío el resultado directamente a la función de registro, que por supuesto es console.log.
fuente
Perl
En un Perl moderno (5.10 o más reciente):
En Perl mayor:
Ambas soluciones anteriores utilizan el
q
operador tipo cotización Perl y permiten delimitadores selectivos para citar una cadena, por ejemplo.q{}
q[]
q()
q//
Esta solución requiere el cambio de regla que permite llaves, paréntesis o parens. Así, mientras que totalmente válida Creo
mniip
excelente respuesta Perl es más en el verdadero espíritu de las reglas (+1).Sin embargo, tomando una hoja de
mniip
respuesta, mi solución podría escribirse así:y aunque es más duro para la vista, funciona.
fuente
syntax error at -e line 1, near "say chr"
Perl
fuente
Pitón:
causa "¡Hola, mundo!" para aparecer en su pantalla. No me creas ¡Pruébelo usted mismo! Además, esto en realidad no usa la web, abre un navegador, que podría buscar un sitio web.
fuente
dc, (26 bytes para los golfistas)
[]
Ahora se permiten espacios en blanco y corchetes:Salida:
fuente
Rebmu , 46 caracteres
Paralelamente a la solución de @ dragetun en Rebol (porque Rebmu es una herramienta de enseñanza Rebol / Red que es un "dialecto" que tiene como objetivo llamar la atención sobre los idiomas al mecerse en Code Golf. :-P)
Sin embargo, para obtener los personajes faltantes, hice algo más obvio. Acabo de agregar espacio, en lugar de ir y mirar a través de las cadenas del sistema. Puede agregar espacio 1 para obtener el carácter literal # "!" y agrega espacio 12 para obtener el carácter literal # ",".
Si ejecutamos esto, podemos ver que se "deshace":
Lo cual es bastante lógico:
fuente
Espacio en blanco
De acuerdo, podemos usar espacios en blanco. Sólo se utiliza
Space
,Tab
,LineFeed
e ignora cualquier otro carácter.Con comentario:
S
,T
oL
mediosSpace
,Tab
oLineFeed
respectivamente.Con resaltado: http://en.wikipedia.org/wiki/Whitespace_(programming_language)#Sample_code
fuente
T-SQL, 52
Ah, esto es mejor! Conversión binaria directa, solo 52 caracteres.
Previamente...
Hay una solución mucho más inteligente y golfista que funcionaría si pudiéramos usar
=
y+
(Buscar datos integrados estándar en msdb y usar eso para construir una cadena de consulta compatible con EXEC)Pero como no podemos, obtienes este enfoque ingenuo:
fuente
Pitón:
Pfff, ¿quién necesita la parte numérica de alfanumérico?
Esto depende de la configuración regional, por lo que su kilometraje puede variar. Sin embargo, si realmente desea replicar este resultado, puede usar lo siguiente en lugar de las declaraciones de importación:
(esto no es parte de mi presentación, solo está compartiendo mis locales para la recreación)
fuente
J - 73 char
Se puede hacer, después de todo!
Esto es lo que pasa con J. La mayoría de las primitivas son signos de puntuación ASCII, seguidos de hasta dos puntos o dos puntos. Esas primitivas que no están hechas de puntuación son caracteres alfanuméricos seguidos hasta dos puntos o dos puntos. Así que no se nos permite ninguno de esos, excepto
{ } [ ]
.[
y]
son verbos de identidad y, por lo tanto, son inútiles.Afortunadamente,
{
indexa las matrices, por lo que si tuviéramos, por ejemplo, una cadena con cada carácter ASCII (a.
llamado Alfabeto ), podríamos extraer las letras por sus puntos de código ASCII. También tenemos una forma de respaldo de hacer cadenas ,0 : 0
y luego cosas y luego solo)
; el colon en el que tiene un alias en la biblioteca estándar,def
.Luego hay un verbo en la biblioteca estándar
show
, que le da la representación interna de un verbo si le pasa el nombre como una cadena. Hay otro verbo,do
que evaluará una cadena. Entonces, si podemos extraer una.
de cualquier representación, podemos evaluar eso y extraerloHello, World!
.Nuestro salvador viene en forma de
take
, un alias para{.
que tiene una
en su nombre.show'take'
volverátake=: {.
, entonces tenemos nuestraa.
y por lo tanto una solución.Podemos deshacernos de él
{
usando el equivalente esencialmentepick
de la biblioteca estándar, pero no se puede evitar el par al final.fuente