Este desafío es sencillo, pero con suerte, hay muchas maneras de abordarlo:
Debe imprimir / devolver un objeto JSON válido de al menos 15 caracteres, sin contar espacios en blanco no esenciales. Su programa debería funcionar sin ninguna entrada.
En aras de la claridad, un objeto JSON comienza y termina con llaves {}
, y contiene cero o más pares clave: valor separados por comas. La especificación JSON completa se puede encontrar en json.org , y la salida de su código debe pasar este validador .
Por lo tanto, cualquiera de los siguientes no sería válido:
4 //Too short, not an object
"really, really long string" //A string, not an object
["an","array","of","values"] //An array is not a JSON object
{"this":4 } //You can't count unessential whitespace
{"1":1,"2":3} //Too short
{"a really long string"} //Not valid JSON, it needs a value
{'single-quoted':3} //JSON requires double-quotes for strings
Sin embargo, lo siguiente sería válido:
{"1":1,"2":2,"3":3,"4":4} //Long enough
{"whitespace ":4} //This whitespace isn't unessential
Los lenguajes que no son de programación están permitidos en este desafío. Puede devolver una cadena de una función o imprimirla. Este es un código de golf , ¡así que responda con el menor código posible!
Respuestas:
Python 2, 14 bytes
Salidas:
Los backticks obtienen la representación de cadena en Python 2. Por lo general, estos resultados en el interior crean comillas simples, que Python reconoce como delimitación de una cadena, pero JSON no. Pero Sp3000 observa que cuando se encadena un tipo, la descripción del tipo ya contiene comillas simples, lo que obliga a las comillas externas a ser comillas dobles.
fuente
print({repr(str):1})
print({"'"*9:9})
para 16 (print{"'"*9:9}
son otros 14 en Py2)jq, 6 caracteres
(Código de 3 caracteres + opción de línea de comando de 3 caracteres).
CW porque estoy seguro de que este no es el tipo de respuesta que pretendías permitir.
Ejecución de muestra:
(Salida obviamente acortada)
fuente
-n
y una cuenta de espacio para tres bytes adicionales.Jalea , 11 bytes
Pruébalo en línea!
Salida
fuente
pwllgw
ybwllll
). ¿Qué es esto?Bloc de notas, 7 pulsaciones de teclas
Si tiene una computadora con Windows con el programa Bloc de notas, escriba esto:
{"F5":0}
En mi computadora con Windows 7, al menos, esto te da algo como:
fuente
Java (JDK 10) , 20 bytes
Pruébalo en línea!
Salida
fuente
+
aString.concat
>: ^ (String.concat
! Si comprueba el código de bytes, esto es lo que Java se compila en:()->new StringBuilder("{\"\":").append(1/.3).append("}").toString()
. Además, no te preocupes, esta sigue siendo la respuesta más larga en esta página, excepto Brainfuck y Java 7. Entonces Java mantiene su rango;)PHP,
1413 bytesImprime un objeto matemático
agradableque casi se podría imaginar que es útil:Usa el hecho de que php imprime cualquier cosa fuera de las etiquetas textualmente para ahorrar entre comillas,
M_E
fue la constante más corta que pude encontrar.editar: guardado un byte gracias a Lynn. Lamentablemente ya no es un objeto matemático "agradable".
fuente
""
es una clave JSON válida.JavaScript,
1715 bytesGracias a @Neil por este. Llamada sin entrada.
Salidas
{"undefined":0}
Versión anterior, 16 bytes
Gracias a @ kamoroso94 por -1 en esta versión
Salidas
{"":9000000000}
fuente
a
)_=>`{"a":${_}}`
da como resultado{"a":undefined}
, que es exactamente 15 caracteres. Notó que no usa ninguna entrada al llamar a esta funciónundefined
es un valor válido en JSON, pero eso es fácilmente resueltos, por lo que es el nombre de la propiedad y el uso de un valor cero:_=>`{"${_}":0}`
.a
para hacer que la clave sea la cadena vacía, una clave válida en JSON. 1 byte menosBrainfuck, 50 bytes
Salidas
{"999999999999999999999999999999999999999999999999999999999999999999999999999999999":9}
. Asume un intérprete que tiene celdas de 8 bits y no está acotado a la izquierda. Pruébalo en línea!fuente
Pyth - 5 bytes
Impresiones
{"'abcdefghijklmnopqrstuvwxyz'": 10}
.Pruébelo en línea aquí .
fuente
Jolf, 9 bytes
Salidas:
{"{¦q:¦q}":"{¦q:¦q}"}
. Pruébalo aquí!fuente
Pyth, 7 bytes
Crea un diccionario que contiene una sola clave
"'abcdefghijklmnopqrstuvwxyz'"
y valor0
:fuente
Lote, 16 bytes
Impresiones
{"Windows_NT":0}
.fuente
///,
1514 caracteres(Al menos el resultado es
12 caracteres más largo que el código).Pruébalo en línea!
Gracias a:
Ejecución de muestra:
Solo para hacerlo más legible:
fuente
/a/{":1234}/aa
(salidas{":1234}{":1234}
)R, 19 bytes
Se vuelve un poco más largo porque la necesidad de escapar de las citas
\"
. Además,lh
es uno de los conjuntos de datos integradosR
y es (que yo sepa) el objeto con el nombre más corto que contiene los 9 caracteres necesarios para completar la longitud de la clave. (editar: resultapi
que también funciona con la opción estándar y @JDL me derrotó, que era lo suficientemente inteligente como para escapar usando comillas simples en lugar de las barras invertidas adicionales)La descripción de
lh
en la documentación R es:que es un nombre bastante inesperado de una clave, pero bueno, funciona y produce la salida:
La respuesta se puede comparar con solo rellenar la tecla con letras "aleatorias" para que la salida tenga al menos 15 caracteres (24 bytes):
fuente
cat('{"',lh,'":1}')
como hice anteriormente (aunque usé enpi
lugar delh
). En mi búsqueda de variables de dos letras me encontré con la funciónel
que nunca supe que existía. Podría ser útil en el futuro ...PowerShell
222014 BytesSalida
Usando la constante definida para 1TB en bytes para alcanzar el límite de caracteres y el valor de un entero estático para hacer json válido. Gracias a TimmyD por reducir los caracteres en 5 al eliminar algo de redundancia.
Publicación anterior 40 bytes
Salida
Toma una matriz de enteros y crea un par clave-valor para cada uno. Únete con comas y envuélvete con un conjunto de llaves.
fuente
05AB1E , 9 bytes
Desafortunadamente, 05AB1E no tiene un objeto de diccionario, así que tenemos que construir el nuestro.
Pruébalo en línea!
Salida
fuente
Retina, 11 bytes
Salida
Nota: la nueva línea principal es importante ya que nada se reemplaza con la salida resultante, ¡he usado un espacio continuo para ilustrar esto!
Pruébalo en línea!
fuente
V , 9 bytes
Pruébalo en línea!
Muy sencillo Entra en modo insertar, ingresa el siguiente texto:
La razón por la que esto es tan breve es porque
¹
repite el siguiente carácter 9 veces.fuente
JavaScript (ES6) + jQuery, 15 bytes
Porque jQuery.
Salidas
{"function (a,b){return new n.fn.init(a,b)}":0}
cuando se llama. Pruébalo aquí:Mostrar fragmento de código
fuente
alert()
no está produciendo nadaDyalog APL , 9 bytes
Pruébalo en línea!
En un espacio de trabajo limpio en mi PC, el resultado es
{"Category":"","DM":[],"EM":"","EN":0,"ENX":0,"HelpURL":"","InternalLocation":["",0],"Message":"","OSError":[0,0,""],"Vendor":""}
⎕JSON
convertir a JSON⎕DMX
el (universalmente disponible) D iagnostic M ensaje E x tendía objetofuente
brainfuck, 83 bytes
Salidas
{"333333333":3}
Es probable que haya otra solución más corta, pero aún no la he encontrado.
Explicación:
Pruébalo en línea
fuente
PHP, 19 bytes
Salida:
{"387420489":1}
https://eval.in/665889
Gracias a manatwork por los consejos!
fuente
**
operador:pow(9,9)
→(9**9)
.{"<?=9**9?>":1}
Java 7, 36 bytes
Java 8, 21 bytes
Ungolfed y código de prueba:
Pruébalo aquí.
Salida (longitud 15):
fuente
1
( verSystem.identityHashCode(Object)
).""
como clave y1e7
como valor.""
es una clave válida cuando se prueba en el validador.this
código. En cuanto a""
con1e7
, eso desafortunadamente no funcionará.1e6
salidas1000000.0
, pero1e7
salidas en su1.0E7
lugar.R, 19 bytes
Esto funciona en inglés británico local; Puede requerir +2 bytes en otros. (Editar: probablemente no --- ver comentarios).
Esperaba algo inteligente (tal vez extraer una línea de código de una función preexistente como
q
), pero no pude encontrar nada. El resultado:Tenga en cuenta que no tiene que escapar de las comillas dobles en R si usa comillas simples para citar la cadena (y viceversa). Sin embargo, este comportamiento depende de la configuración regional. Sin embargo, también esperaría que funcione en un idioma inglés de EE. UU.
Esto también requiere que su
digits
opción predeterminada sea al menos seis (que es el valor predeterminado de fábrica) y quescipen
es al menos-digits
(el valor predeterminado de fábrica es cero).fuente
options(quote)
cuál puede especificar el usuario, pero el valor predeterminado depende , por lo que sé, de la configuración regional.options('quote')
no está documentada , cambiarla no tiene un efecto discernible, y aunque me he encontrado con muchas travesuras en RI, dudo que las opciones de tiempo de ejecución cambien la forma en que se analiza. Puede cambiar la salida, por supuesto, pero no en el código de esta respuesta.quote
,squote
etc.Ruby, 19 bytes
Salida:
fuente
puts
??1*9
todavía es lo suficientemente largo.Elemento , 18 bytes
Pruébalo en línea! Salidas
{"a":387420489}
Esto es solo tres bytes más corto que la solución ingenua. La primera mitad de la salida está codificada (demasiados caracteres de escape para que cualquier otro enfoque sea factible), mientras que el valor se calcula
9^9
para hacer un número lo suficientemente largo.fuente
Perl 5,
1615 bytesUtiliza la marca de tiempo de Unix del momento en que se inició el programa como contenido de un objeto de un elemento. Proporciona un resultado válido si lo ejecuta después de las 10:46:39 del 3 de marzo de 1973 . Pero como no podemos retroceder en el tiempo, eso parece legítimo.Utiliza la variable FORMAT_TOP_HANDLE
$^
que está predeterminadaSTDOUT_TOP
.Corre con
-E
bandera sin costo adicional.Las salidas tienen 16 bytes de longitud.
fuente
Cheddar,
1714 bytesGuardado 3 bytes gracias a @ ConorO'Brien
Una función anónima que devuelve
{":1234}{":1234}
, que es un objeto JSON válido:Pruébalo en línea!
fuente
Lote de Windows, 10 bytes
La variable de entorno
OS
contiene la cadenaWindows_NT
(en todos los sistemas operativos Windows desde 2000, de acuerdo con esta pregunta sobre desbordamiento de pila)fuente
{"%OS%":5}
como si fuera un comando y usted se beneficia de la función de rastreo elemental? Eso es complicadoHQ9 +, 15 bytes
Salidas en sí. Pensé que una respuesta de 8 bytes sería posible, así:
Esto genera
{":11QQ}{":11QQ}
, que es JSON casi válido, pero11QQ
no es un valor válido.HQ9 + no es un lenguaje de programación válido según los estándares PPCG, pero el OP ha permitido lenguajes que no son de programación.
fuente