Hace aproximadamente un año, el 31 de diciembre de 2015, tuve la idea de que:
Doorknob recogió gentilmente personajes de la comunidad PPCG y los mantuvo a salvo durante un año.
¡ Participaron 74 personas, por lo que tenemos 74 personajes ASCII imprimibles para jugar!
Aquí están los 74 caracteres de la cadena de la cápsula del tiempo 2016 en el orden en que fueron enviados:
H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``#|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%
Aquí están los 74 caracteres de la cadena de la cápsula del tiempo 2016 en orden ASCII (observe el espacio inicial):
!!!!!#$$%&())))*+...1449:=@@@AHILOQQQTTZ\\^`````````eefmpxy{||||~~~~~~~~~
No es mucho para trabajar, pero por aquí nos gusta un desafío.
El reto
Para determinar qué idioma es el "mejor" con la cadena de la cápsula del tiempo tendremos 6 (para 201 6 ) desafíos que aumentan en dificultad, donde en cada uno debe usar un subconjunto de los 74 caracteres de la cápsula del tiempo.
Tener 6 desafíos distintos ayuda a garantizar que más idiomas puedan competir, pero solo los mejores idiomas podrán responder a todos y obtener una puntuación alta.
Puntuación:
- Cada desafío se puntuará de 0 a 74 dependiendo de cuántos personajes se usen.
- Los puntajes más altos son mejores.
- Si su idioma no puede completar un desafío, su puntaje para ese desafío es 0.
- Se puede completar cualquier subconjunto no vacío de los desafíos.
- Su puntaje final es la suma de los puntajes de los 6 desafíos.
- El mejor puntaje final posible es 6 × 74 o 444 .
Los desafios
1. Ejecutar
Si el código de un idioma no puede ejecutarse en primer lugar, no podrá hacer nada en absoluto.
Escriba el programa completo más largo posible (usando solo los 74 caracteres de la cápsula del tiempo, recuerde) que se ejecuta / ejecuta sin errores de tiempo de compilación o tiempo de ejecución.
No importa lo que haga el programa, no importa si tiene entrada / salida o entra en un bucle infinito, solo importa que se ejecute sin errores. (Las advertencias están bien, al igual que los errores causados por una entrada incorrecta del usuario).
Se permiten comentarios, por lo que esto podría ser tan simple como
#H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%
en Python para un puntaje de 74.
(No tenga miedo de responder si este es el único desafío que su idioma puede completar, pero tampoco espere muchos votos).
Puntuación = duración del programa (un programa más largo es mejor)
2. E / S
Un lenguaje que no tiene forma de entrada o salida es casi tan inútil como uno que no se puede ejecutar.
Dado un carácter ASCII imprimible de !
(0x33) a }
(0x7D) inclusive, genera el carácter ASCII imprimible antes y después.
La salida puede ser una longitud de dos cadenas o listas, o los caracteres separados por un espacio o una nueva línea.
Por ejemplo, si la entrada es }
la salida podría ser |~
o ["|", "~"]
o | ~
o |\n~
.
Del mismo modo, "
es la salida para !
y AC
es la salida para B
.
Puntuación = 74 - duración del programa (un programa más corto es mejor)
3. Branchability
Los condicionales son a menudo un requisito para la integridad de Turing , que a menudo es un requisito para que un idioma sea útil.
Dado un número entero positivo, si termina en los dígitos decimales 16
a continuación, cambiar el 6
a una 7
y la salida el resultado; de lo contrario, envíe la entrada sin cambios. Puede usar cadenas para entrada / salida si lo prefiere.
Ejemplos:
2016 -> 2017
16 -> 17
116 -> 117
1616 -> 1617
6 -> 6
15 -> 15
17 -> 17
106 -> 106
2106 -> 2106
Puntuación = 74 - duración del programa (un programa más corto es mejor)
4. Loopabilidad
Un lenguaje que no puede hacer bucles generará código repetitivo tan tedioso que necesitará tomar un descanso de programación por un tiempo.
Dado un número entero positivo, genera un cuadrado de arte ASCII de esa longitud lateral lleno de un patrón de cuadrados concéntricos más pequeños que alterna entre dos caracteres ASCII imprimibles distintos . No tienen que ser los mismos dos caracteres para diferentes entradas.
Por ejemplo:
1 <- input
X <- output
2
XX
XX
3
XXX
X-X
XXX
4
XXXX
X--X
X--X
XXXX
5
YYYYY
Y...Y
Y.Y.Y
Y...Y
YYYYY
6
XXXXXX
X----X
X-XX-X
X-XX-X
X----X
XXXXXX
7
ZZZZZZZ
Z-----Z
Z-ZZZ-Z
Z-Z-Z-Z
Z-ZZZ-Z
Z-----Z
ZZZZZZZ
Puntuación = 74 - duración del programa (un programa más corto es mejor)
5. Matemáticas
Un lenguaje que no es bueno con los números y las matemáticas también podría ser para las carreras de humanidades.
No tome más datos que los 72 divisores enteros de 2016 , positivos y negativos, en cualquier orden. La salida se puede formatear como una cadena o lista de manera razonable.
Ejemplo:
-1, -2, -3, -4, -6, -7, -8, -9, -12, -14, -16, -18, -21, -24, -28, -32, -36, -42, -48, -56, -63, -72, -84, -96, -112, -126, -144, -168, -224, -252, -288, -336, -504, -672, -1008, -2016, 1, 2, 3, 4, 6, 7, 8, 9, 12, 14, 16, 18, 21, 24, 28, 32, 36, 42, 48, 56, 63, 72, 84, 96, 112, 126, 144, 168, 224, 252, 288, 336, 504, 672, 1008, 2016
Puntuación = 74 - duración del programa (un programa más corto es mejor)
6. Esoterismo
(No, eso no .) En PPCG nos gustan nuestras cosas esotéricas , y las quines son un buen ejemplo de eso.
Escriba la quine más larga que pueda, de acuerdo con las reglas habituales de quine . Un quine es un programa que no toma entrada y sale por sí mismo.
Puntuación = duración del programa (un programa más largo es mejor)
Reglas especificas
- En cada uno de los 6 desafíos, su programa debe ser un subconjunto de los 74 caracteres de la cápsula del tiempo reorganizados de la forma que desee. Puede ser un subconjunto vacío o un subconjunto incorrecto , por lo que cada uno de sus programas podría tener tan solo 0 y hasta 74 caracteres.
- Una nueva línea final al final de entrada / salida / código está bien en cualquier lugar ya que algunos idiomas requieren esto o no se puede evitar fácilmente.
- A menos que se especifique lo contrario, cada desafío se puede completar como una función o un programa completo de acuerdo con nuestros valores predeterminados .
- Todos los desafíos deben completarse en el mismo idioma.
- Debe usar un idioma (o versión de un idioma) creado antes de 2017 en cualquier lugar de la Tierra .
- Cualquiera puede responder, ya sea que haya agregado un personaje a la cápsula del tiempo o no.
Siéntase libre de usar los personajes de la cápsula del tiempo 2016 en sus propios desafíos.
fuente
6×74 or 444
no es posible, ya que eso significaría programas vacíos, que de alguna manera se comportan de manera diferente. por lo tanto, 442 es el mínimo real, ya que eso significa que dos de los 3 programas de entrada tienen un carácterRespuestas:
Glifo , 74 + ( 74-36 ) = 112
1. Ejecutar (74 bytes)
2. IO (36 bytes)
Explicación
Glypho parecía una opción bastante buena para este desafío, porque no le importan los personajes reales que se utilizan. En cambio, analiza grupos de cuatro caracteres y elige el comando en función del patrón de repetición en esos cuatro caracteres. Dado que hay muchos duplicados entre la cadena de la cápsula del tiempo, somos bastante flexibles en los programas que podemos escribir, excepto que estamos limitados a programas de 18 comandos (que no es mucho en Glypho). Si bien esto me permitió resolver los dos primeros problemas con bastante facilidad, dudo que Glypho pueda ejecutar a los demás con tan pocos personajes.
Los probé usando el intérprete de Java recuperado del 23/06/2006 en la máquina wayback , que usa una asignación ligeramente diferente de los comandos:
El programa Run se traduce en:
¿Dónde
...
hay basura que no me molesté en traducir?El programa IO se traduce en:
Esto es lo que hace esto:
fuente
CJam, 74 + (74 - 14) + (74 - 26) = puntaje 182
1. Ejecutar (74 bytes)
Pasar
e#
al frente comenta toda la línea.2. E / S (14 bytes)
Dennis ahorró 8 bytes.
Explicación:
3. Branchability (26 bytes)
Explicación:
Veré a los otros más tarde. ( EDITAR : dudo que sean posibles, sin literales de bloque o cadena ... ¿tal vez el matemático?)
fuente
9`)ZH*+~):Q(Q)
.J, puntaje 71 + (74-19) = 126
Tarea 1, longitud 71
Esto define un verbo
AHILO
para ser el interior. No usado:No creo que haya forma de alargarse más que esto.
Tarea 3, longitud 19
La forma de hacer esta tarea sin restricciones es la
+16=100|]
siguiente:Tenemos
+
,=
y varias copias o|
a nuestra disposición, y es fácil moverse]
, pero los números son más problemáticos. Aquí está la primera parte que calcula el módulo de entrada 100:Una vez que hayamos terminado con eso, produzcamos el número 16. La manera fácil es con
*~4
(4 multiplicado consigo mismo), pero ya lo usamos,*
así que está prohibido. En cambio, haremos alguna manipulación de matriz.Trabajo
2
Esto es definitivamente imposible. Las únicas formas de manipular los valores de los caracteres son
a.
yu:
, y no tenemos acceso a ninguno.Ahora, si pudiéramos usar en
a
lugar de, digamosA
, entonces, esta sería una solución:La parte más difícil para que esto funcione fue producir el número -1.
4 4
Esto genera la forma de la cáscara, pero parece que no puedo encontrar una manera de generar personajes. Pobre de mí.
5 5
Es cierto que esta parece ser la tarea más fácil de hacer en J. Sin embargo, sin
i.
esto, será bastante difícil.6 6
Es probable que esto sea imposible sin un quine falso
449
o algo así, porque la cadena de cápsulas no contiene comillas ni ninguna otra forma de producir cadenas J.fuente
Q{~1+I.~&Q=:a.
da el siguiente carácter: unir el alfabetoa.
aQ
, encontrar el índice de la entrada en ella conI.
, agrega uno, y el índice enQ
. Intentalo. El único problema que queda es producir-1
...+16=100&|
. Solo necesita producir 16 y 100 de alguna manera.+($@#~@$~4)=1e4|&%:*~
Fue extremadamente molesto porque solo tenemos uno de cada uno(&=:+*
y dos4
s.Q{~(*^.4%9 1)+I.~&Q=:a.
me di cuenta de que el logaritmo^.
da números negativos para entradas estrictamente entre 0 y 1, y tenemos que%
producir fracciones y*
llevar los resultados a -1 y 1.PowerShell - Puntuación total: 74
1. Carrera - Puntuación: 74
Dado que esto es extremadamente difícil en PowerShell (por lo que puedo decir, todos los métodos posibles para obtener información son imposibles con los caracteres dados), al menos he decidido aleatorizar el primer desafío para que no todos estemos copiando el ejemplo directamente del post.
Así que aquí hay un desafío aleatorio 1 generador de respuestas (para idiomas donde
#
hay un comentario):Pruébalo en línea!
fuente
$^
"la primera ficha de la línea anterior en la sesión", lo que sería extremadamente limitado y muy probablemente una severa flexión de las reglas estándar de E / S.$^
está en blanco en una nueva sesión de todos modos.memes , puntuación de (
6265 + 70) 1351: Ejecutar
Eliminé todos los backticks (
`
) y operadores matemáticos. Entraron en conflicto porque no había suficientes números para satisfacer a todos los operadores unarios y binarios. Dejé algunos adentro, resultando en +3 bytes . Programa resultante:No tengo idea de por qué y cómo funcionó. Al menos no arroja ninguna excepción de tiempo de ejecución de C # y, por lo tanto, no se bloquea.
6: Quine
Sabes, si hubiera habido una
-
o minúsculaq
en algún lugar de esos 74 caracteres, esto sería demasiado fácil. Me alegro por elI
operador, al menos.Este código no es exactamente obvio. Aquí hay una explicación:
Las cadenas de fracciones (p1/4
. Ej. ) Se muestran con una I al final, para indicar exactamente eso. ElI
operador suele ser inútil, lo agregué por otros medios, pero bueno, ¡funciona así!El código anterior no es válido. Estúpido, no vi que los 74 caracteres no contienen un solo operador de división, forwardslash (
/
). Sin embargo, se me ocurrió algo más:Explicación:
Salidas
True
(debido a la forma en que C # manejaBoolean.ToString()
mayúsculas y no minúsculas). No estoy seguro de si se trata de una quine adecuada, mientras tanto todavía me estoy rompiendo la cabeza por una válida, realmente adecuada e intuitiva.Tal vez también podría resolver el desafío de E / S y matemáticas, pero me faltan tokens (caracteres) específicos que no están incluidos en los 74 caracteres.
fuente
Brainfuck, 74 bytes
Solo tenía que hacerlo.
Explicación:
Cualquier personaje que no sea un personaje válido de Brainfuck se trata como un comentario. El único código que realmente se ejecuta es este:
Esto no produce resultados imprimibles, ya que ni 0 ni 1 son caracteres imprimibles en ASCII. Sin embargo, no causa un error, por lo que completamos con éxito el primer desafío.
fuente
Mathematica, puntaje de 62
Me sorprendería si alguien puede hacer que los desafíos 2-6 funcionen en Mathematica. Aquí está lo mejor que hice con el desafío 1:
Define una función bastante estúpida
A
con un valor constante. Los 12 caracteres no utilizados son:fuente
Octava, puntaje 74
1. Ejecutar
50 de estos caracteres son parte de la función, mientras que los 24 restantes no lo son.
Que hace:
x =@(AHILOQQQTTZeefmpy)
crea una funciónx
que puede tomar una variableAHILOQQQTTZeefmpy
como entrada.Para entender el resto:
a||b
llama a la funciónall()
en ambosa
yb
. Si uno o ambos devuelven verdadero, el||
operador devolverá verdadero.!a
y~a
significa lo mismo aquí, son ambosnot(a)
.a.^b
es un poder de elemento sabio(a(1)^b(1), a(2)^b(2) ...)
Explicación continua
Acortaré cada uno de los pasos a medida que avance:
Y:
Hay un número par de
not
, por lo que es equivalente anot(not(4))
cuál estrue
o1
.El resto está comentado.
fuente
*> <> , puntaje total = 74
1. Corre, anota 74
Pruébalo aquí!
Esto fue extremadamente difícil de hacer sin el
;
personaje. De hecho, pensé que iba a ser imposible por un par de momentos, hasta que vi el%
, básicamente me di por vencido.Este también es un programa válido> <>.
Explicado (partes irrelevantes omitidas)
Desafíos enfrentados
Podría intentar los otros desafíos ... serían extremadamente difíciles y podrían involucrar doblar las reglas de maneras extrañas, pero el uso liberal de los
|
espejos y los!
trampolines debería hacer posible al menos un desafío más.Estos desafíos son particularmente difíciles porque no se nos permite ninguna salida con *> <> (
o
yn
), o incluso llamadas a funciones (C
), retornos de funciones (R
) o terminadores de programa (;
). Aunque también nos faltani
entradas, todavía podemos tener entradas colocadas en la pila, lo cual es una ventaja. Otra ventaja es que obtenemos una solap
instrucción, que nos permite reemplazar una instrucción en el cuadro de código. Esto podría usarse varias veces (aún no he descubierto una forma práctica), lo que comenzaría a hacer que los otros programas parezcan más posibles (ya que podríamos generar dos o más instrucciones).fuente
Haskell, puntaje 63
1. Ejecutar:
No se utilizan son
)))```````{
. Los comentarios en Haskell son--
o{- ... -}
, por lo que no hay una versión fácil de todos los comentarios.Este código define un operador infijo
!!!!!#$$%&*+...:@@@\^||||~~~~~~~~~
que toma dos argumentos:fmpxyAHILOQQQTTZ
que se ignora y, por lo tanto, puede ser de tipo arbitrarioe
, que debe ser una función que tome dos númerosEn la función, el cuerpo
e
se aplica a 14 y 49, usando la`
notación de inserción.Ejemplo de uso:
El operador se aplica a
()
la tupla vacía y(*)
al operador de multiplicación, por lo que14*49 = 686
se calcula.Pruébalo en línea!
Otros desafíos
Dudo que alguno de los otros desafíos sean posibles, especialmente debido a la falta de posibles nombres de variables que pueden aparecer dos veces, que es solo
e
(o algo asíeQT
), porque los nombres de variables no pueden comenzar con una letra mayúscula. Por supuesto, tener solo uno=
tampoco ayuda.fuente
Pyth, 131 por ahora (2 desafíos completos)
1. Run, 74
Este programa no tiene entrada y no crea salida.
Este programa utiliza
$$
, lo que permite la ejecución de código arbitrario, por lo que está prohibido en línea, por lo que este programa en línea se ejecuta sin conexión. Aquí está su salida de compilación, para que pueda ver lo que realmente se ejecuta:Es bastante complicado escribir un programa con caracteres arbitrarios que no produzca errores en Pyth. Me planteé el desafío adicional de exigir que el programa se ejecute sin requerir también la intervención del usuario.
El primer paso es usar
#
para comer todos los errores. A continuación, debemos evitar los errores causados por~
,I
yL
, cada uno con sus propios detalles. Esto se logra colocándolos dentro del$$
, que los incrusta dentro de la compilación de salida, y por lo tanto los somete a las reglas de compilación de Python, no a Pyth. Finalmente, para evitar tomar la entrada del usuario, los diversos tokens de arity 0 (Variables y similares) se colocan al final, y losQ
s se mueven dentro del$$
bloque.2. IO
Esto será increíblemente difícil, si es posible. Ninguna de las funciones de Pyth que crean cadenas o caracteres arbitrarios están presentes
.f
, excepto , y eso hace un trabajo realmente pobre de crear caracteres arbitrarios.3. Branchabilidad: 74 - 17 = 57
Pruébalo en línea
Un programa Pyth equivalente sería:
Este código toma el mod de entrada 100, lo compara con 16, y luego usa un ternario para elegir entre la entrada y la entrada más uno. Debido a restricciones de caracteres, hice algunas sustituciones:
En lugar del
?
ternario que utilicé|&
,or
entoncesand
, que tiene la misma funcionalidad, excepto que se rompe si la entrada es cero, pero como se nos garantiza una entrada entera positiva, está bien. (Esto podría haberse solucionado sin caracteres adicionales, pero es más simple de esta manera).En lugar de comparar directamente los dos números, tomo su XOR con
x
, que es cero si y solo si son iguales, según lo deseado.En lugar de escribir
100
directamente, lo genero con*TT
, ya queT
se inicializa en10
.En lugar de escribir
16
directamente, lo genero conye|LZ9
.|LZ
esencialmente funciona como la función de rango, por lo que|LZ9
da[0, 1, 2, 3, 4, 5, 6, 7, 8]
.e
toma el elemento final de una lista, dando8
.y
lo dobla, dando lo16
que desee. Con un extra+
o un extra*
, podría guardar un personaje, pero ambos son más útiles en otros lugares.¡Más por venir!
fuente
Rubí - Puntuación: 74
1. Ejecutar
Agarrado del desafío.
fuente
JavaScript (ES6), puntuación = 74
1. Ejecutar, 74 bytes
6. Esoterismo (inválido)
Para el registro, mi quine sugerido fue:
que resultó no ser válido, como se analiza en los comentarios a continuación.
fuente
Retina, puntaje 74
1. Corre, anota 74
Moví los parens adicionales a la configuración para que se equilibren en la expresión regular. También me moví a la
`
derecha después de eso, y cambié+.
a.+
.Pruébalo en línea
Los otros son probablemente imposibles, ya que no hay nuevas líneas. Tampoco hay
-
para la transliteración od
para una clase de caracteres de dígitos.fuente
Pip, puntaje 74 + (74-19) = 129
¡Tantos backticks sin una cita para ver, simple o doble!
Tarea 1, puntaje 74
Básicamente solo una serie de literales de patrón (regex) en backticks, el último de los cuales se imprime. Como hay un número impar de backticks, tenemos que hacer una barra invertida para escapar de uno de ellos (
`\``
). Pruébelo en línea , con la-w
bandera agregada para demostrar que no se generan advertencias.Tarea 3, puntaje 55 (longitud 19)
Usando un método de entrada bastante extraño, el quinto argumento de la línea de comandos, esto es posible. Pruébalo en línea!
Otras tareas
Es posible obtener información para la tarea 2 , por el mismo método que la tarea 3 anterior. El problema es convertir a código ASCII y volver a un carácter. Se puede hacer lo primero
A
, pero lo último requiereC
, o posiblemente indexar en laPA
variable. La construcción y evaluación del código no se puede hacer sinV
. No creo que la tarea sea posible.La tarea 4 es desafiante incluso sin un conjunto de caracteres restringido. Supongo que requeriría listas (sin usar los
[]
delimitadores oRL
(lista de repetición) y solo tener una oportunidad de usarAL
(agregar lista) - no es probable) o posiblemente algo conCG
(cuadrícula de coordenadas) oMC
( coordenadas de mapa), ambos no permitidos .La tarea 5 está al borde de la posibilidad. Los bucles serían difíciles, ya que
F
o yM
ap no son posibles, y no se pueden construir rangos,
. Puede haber algo que hacer conT
enfermedad. El incremento podría ser de lax:x+1
variedad (obviamente con una variable distinta dex
). Se pueden usar controles de divisibilidad%
. Aún así, no creo que haya suficientes caracteres, especialmente letras repetidas, para hacer todo lo que debe suceder.La tarea 6 parece completamente imposible. Todos los Pip quines conocidos tienen
"
en ellos. También usanR
(reemplazar),RP
(repr) oV
(eval), ninguno de los cuales está disponible.fuente
En realidad, puntaje (74 + 0 + 0 + 0 + 0 + 0 ) = 74
Sí, la cadena de la cápsula funcionará con Actually como lo es para Run, ya que en realidad descarta cualquier error y cada error se convierte en un NOP.
H@~*^)$.
(¡ Pruébelo en línea! )~+1A|Q)p~
\Z!IQ~e:O.~@#|9@)Tf\eT`=(!
|~!y!
) Q~$x.4|m4~~&!L{%Sin embargo, generará un desastre de cosas (pero también su fuente una vez: 3).
Sin embargo, trabajaré en otros desafíos.
fuente
Q
en absoluto (ya que es el combo incorporado), y no hay comillas dobles, por lo que no puede hacer ningún formato de cadena. Ayer trabajé durante un tiempo en esto, y estoy bastante seguro de que los otros programas no son posibles únicamente con los 74 caracteres.05AB1E - Puntuación total: 74
1. Ejecutar, 74 bytes
05AB1E omite todo lo que causa un error. Toda esta línea de código es un NOP.
Pruébalo en línea!
fuente
(abusado) PHP, 74 + 74 = 148
El intérprete de PHP simplemente volca el código fuente hasta que encuentra una,
<?
ya que nos falta<
cada permutación de esos caracteres es una quine en ejecución. Supongo que esto no es peor que usar un comando quine incorporado: Pfuente
output this char
hasta que se encuentra con un<
. No estoy diciendo que sea capaz de carga útil o algo así, solo digo que no hay diferencia para un idioma que tiene un dicho de charoutput the source
. Si esta no es una respuesta válida para la parte 1, cualquier idioma que acepte cualquier entrada sin error tampoco es una respuesta válida. No creo que esto sea más abusivo que la mayoría de las respuestas aquí.Mathematica, puntaje 68
Observe la nueva línea final. No creo que ninguno de los otros desafíos se pueda lograr con Mathematica.
fuente
Laberinto, puntaje 74
Estoy bastante seguro de que cualquier variedad de estos personajes produce un programa Labyrinth válido, pero para hacerlo al menos un poco más interesante, esto se imprime
2016
dígito a dígito. (En resumen: presione 22
's en la pila, pop / print uno, mueva el otro a la pila auxiliar, imprima 0, presione 21
' s en la pila, pop / print 1, incremente, bit a bit no, niegue (eso último1
es a3
en este punto), suma con el2
de la pila auxiliar, 5 * 10 + 4 = 54, imprime como valor ASCII, termina)La mayor parte de la línea larga simplemente se ignora, ya que
@
termina el programa.Los desafíos 2, 3 y 4 son imposibles ya que ninguno de los comandos de entrada de Labyrinth están disponibles (
,
o?
), y no se me ocurrió nada para 5 o 6.fuente
SmileBASIC, 48 puntos
desafío 1:
explicación:
otros:
No hay comandos de entrada / salida disponibles, por lo que el resto no es posible.
Aún así, no está mal para un idioma real sin usar comentarios.
fuente
MATL , puntaje total 74
1. Corre, anota 74
Todo depende del
%
código real.%
es un símbolo de comentario, por lo que los caracteres a su derecha se ignoran.El programa sale
1
sin errores.Pruébalo en línea!
fuente
golpe, puntaje 74
1: correr. Podemos correr los 74
6: Esoterismo:
El programa vacío es una quine en bash.
Sin ningún espacio en blanco, no se puede lograr nada más en la lista. Ergo, tengo la entrada ganadora de bash.
fuente
Perl 6 , puntaje total 74
1. Corre, anota 74
Sin comentarios.
(Solo poner el
#
frente para hacer todo un comentario también funciona, pero esto es más divertido).Trabajo
Este es el subconjunto del lenguaje Perl 6 que solo usa los caracteres permitidos:
El obstáculo inmediato para evitar los desafíos 2-6 es que no parece haber una manera de hacer E / S:
Si suponemos que hay un archivo llamado
f
, podríamos usarloQ`f`.IO.e
para verificar si existe oQ`f`.IO.x
para verificar si es ejecutable. Pero no podemos leerlo ni escribir desde él.Podríamos usar
Q:x` `
para ejecutar un comando de shell (suponiendo que encontremos los caracteres para uno). Pero no podemos interpolar nada, por lo que solo sería bueno para leer, no para escribir.Como no hay llave de cierre, no podemos hacer un bloque lambda (por ejemplo
{1 + $_}
) que devuelva automáticamente el valor de su última instrucción.Nosotros podríamos utilizar el asterisco para hacer una expresión lambda (por ejemplo
1+*
), pero entonces sólo podemos tener un argumento, se refieren a este argumento sólo una vez, y son aún más limitadas en la sintaxis / operadores que podemos utilizar.fuente
Lua, puntaje 31
1. Carrera (31 de 74 puntos)
fuente
variable =stuff
es 1 byte más largo.Gelatina , puntaje 74
1. Run , 74
No estoy seguro de cómo hacer cualquiera de los otros.
fuente
/// , Puntuación: 146
1. Correr, Puntuación: 74
!!!!!#$$%&())))*+...1449:=@@@AHILOQQQTTZ\\^`````````eefmpxy{||||~~~~~~~~~
6. Quine, Puntuación: 72
!!!!!#$$%&())))*+...1449:=@@@AHILOQQQTTZ^`````````eefmpxy{||||~~~~~~~~~
Yay, cuando no hay ninguna barra diagonal hacia adelante o hacia atrás en el código, solo se imprime.
fuente