Introducción
Computar es un lenguaje de broma esotérico .
Desde la entrada de esolangs:
Compute no tiene la sintaxis requerida y tiene el poder de resolver todos y cada uno de los problemas. Es lo suficientemente inteligente como para interpretar cualquier lenguaje humano (inglés, español, latín, etc.), cualquier lenguaje de programación (C ++, Java, brainfuck, etc.) o cualquier tipo de datos que pueda imaginar. La única desventaja es que no hay absolutamente ninguna E / S.
Algunos programas de ejemplo
Hello World
Un programa básico de Hello World
What is love?
Determina si el amor es (bebé, no me hagas daño).
When will we ever graduate?
Determina la fecha exacta de este sitio para salir de la versión beta.
El reto
Su tarea es escribir un intérprete informático completo. Esto suena bastante difícil, pero tenga en cuenta que Compute no tiene absolutamente ninguna E / S. Por lo tanto, su intérprete solo duerme un segundo por cada línea en el programa de entrada y salida \n\nDone.
después de esto (esta es la única excepción a la cosa sin E / S).
Puede encontrar el intérprete oficial en la parte inferior de este sitio .
Tenga en cuenta que el intérprete oficial pausa un segundo por cada personaje en el código fuente dado. Para evitar largos tiempos de espera mientras pone a prueba a su intérprete con preguntas significativas, mantenemos las líneas en este desafío.
Reglas
- La entrada puede contener varias líneas separadas por a
\n
. Siempre habrá al menos una línea. - A diferencia de la implementación oficial, no tiene que tomar un archivo como entrada. Puede tomar el programa Compute en cualquier forma de entrada que desee.
- La única salida permitida es
\n\nDone.
. Se permite una nueva línea final. - Función o programa completo permitido.
- Reglas predeterminadas para entrada / salida.
- Se aplican lagunas estándar .
- Este es el código de golf , por lo que gana el conteo de bytes más bajo. Tiebreaker es una presentación anterior.
fuente
Respuestas:
05AB1E ,
16151413 bytesCódigo:
Explicación:
Esta parte es equivalente a
"\n\nDone."
:Pruébalo en línea!
Utiliza la codificación CP-1252 .
fuente
Oración , 117 bytes
Vamos a explicar esto. Primero, esto se transmite a:
¿Sigo confundido? Digámoslo así:
Importa el módulo
time
.Este es un ciclo while cuya condición es
input()
.Nuestro programa necesita respirar ahora y
inhale
, aunque es menos saludable, es más golfista.Now
toma el módulo más reciente importado y lo agrega.sleep(1)
.Salgamos del ciclo while.
Imprime dos líneas nuevas.
Comienza a capturar una cadena.
Se agrega
Done.
a la cadena capturada.Termina de capturar la cuerda.
fuente
JavaScript Shell REPL, 38 bytes
Como una función que acepta el programa como un argumento de cadena y devuelve el resultado:
29 bytes si la función puede aceptar su entrada en forma de una matriz de líneas, o si debería dormir 1 segundo por carácter:
34 bytes si también debería ser más como un programa e imprimir explícitamente Listo:
Esto funciona para mí en el intérprete independiente de Spidermonkey.
fuente
Javascript ES6,
4645 bytesGracias a ӍѲꝆΛҐӍΛПҒЦꝆ por guardar un byte
Asume una matriz como entrada.
Como tanto ӍѲꝆΛҐӍΛПҒЦꝆ como edc65 han señalado, puede escribir lo siguiente, pero no guardará ningún byte:
fuente
1e3
es mejor que10e2
.1e3 is better than 10e2
no puedo creer que me haya perdido eso.Bash + coreutils, 28
Duerme 1 segundo por cada línea. Use en su
wc -c
lugar para cada byte, owc -m
para cada carácter.fuente
Pyth,
1514 bytes(Puede probarlo en línea , pero realmente no tiene sentido hacerlo).
fuente
Done
(lo cual es bastante divertido ya que le dijiste a alguien lo mismo en otra respuesta): PPerl, 21 + 1 = 22 bytes
Requiere la
-p
bandera:fuente
Python 3, 58 bytes
fuente
MATL , 17 bytes
Se utiliza una línea vacía final (seguida de una nueva línea) para marcar el final de la entrada. Esto es necesario en MATL porque la entrada es interactiva y cada entrada termina con una nueva línea.
Pruébalo en línea!
fuente
Done
?QBasic, 54 bytes
Toma el programa línea por línea de la entrada del usuario, terminado por una línea en blanco. Cumple con la letra de la ley, aunque posiblemente no con el espíritu, haciendo una pausa de 1 segundo después de leer cada línea. (La especificación técnicamente no dice que todas las pausas tienen que venir después de que se complete la entrada). Si esto se considera demasiado sombrío, aquí hay una versión de 64 bytes que se detiene después de que se haya ingresado todo el programa:
Versión de bonificación con E / S de archivo (87 bytes):
fuente
Ruby, 32 bytes
Lecturas de stdin.
fuente
OCaml, 61 bytes
Asume que la entrada es una lista.
fuente
Jalea , 12 bytes (no competitiva)
Pruébalo en línea!
Nota: No sugiera poner el
⁷⁷
en la cadena comprimida, lo hará más largo (“¡OÑL[Ṁ»
).Explicación:
fuente
œS
.awk, 34 bytes
Como no hay E / S y el resultado final es inevitable, la
Done.
parte se vence desde el principio.La única forma de dormir en awk es usar el sistema
sleep
. La forma más corta de invocarlo es hacerloprint|"sleep "NR
y también podríamos abusar de eso inútilprint
.fuente