Este es un desafío muy simple.
El lenguaje de broma InterpretMe consta de un comando; *
, lo que hace que el programa tome la entrada de un programa InterpretMe y lo ejecute.
Un programa InterpretMe interpretará tantos programas InterpretMe como haya *
en la entrada.
Su objetivo es crear un programa que interprete InterpretMe en la menor cantidad de bytes posible.
Entrada
La entrada consistirá en cadenas ASCII de una línea, cadenas utf-8 unicode si realmente lo desea, o cualquier codificación de caracteres que utilice su idioma, si así lo desea. Estas cadenas se pueden ingresar al inicio o al comienzo de cada ejecución del intérprete InterpretMe. Si todos se ingresan al inicio, el programa debe generar cada línea de programa a medida que comienza.
Salida
En este desafío, no habrá salida a menos que se elija la opción de una entrada, de lo contrario, solo terminación y no terminación
Los casos de prueba consisten no en entrada y salida, sino en entrada y terminación. Una nueva línea denota una nueva entrada para ser interpretada como InterpretMe.
Si usa una entrada al inicio, esto podría considerarse lo que se genera cuando se ingresan estos programas, seguido de líneas inactivas (no hacer nada).
1. * (executes input as an interpret me program, finishes)
2. * (^same)
3. ** (executes input as an interpret me program, then does this again after the first program is done, finishes)
4. hi (nothing, first star of previous line finishes)
5. ** (same as the other two star line)
6. hi (nothing, first star of previous line finishes)
7. hi (nothing, second star of line 5 finishes, so second star of line 3 finishes, so line 2 finishes, so line one finishes)
[termination] (not outputted)
hi (does nothing and finishes)
[termination]
*hi (executes inputted program, finishes)
*yo (executes inputted program, finishes)
hey (nothing)
[termination]
Nuevamente, esto es código golf , por lo que menos bytes es mejor
Respuestas:
05AB1E , 11 bytes
Código:
Explicación:
Utiliza la codificación CP-1252 . Pruébalo en línea? .
fuente
Python 3, 35 bytes
establece i en uno, agrega la cantidad de '*' -1 a i
Creo que puedo reducir esto conque no pude~
trucosfuente
Python 3,
3938 bytesGuardado 1 byte gracias a @atlasologist
fuente
f=->f()for c in prompt()when c=='*'
(no quiero hacer otra respuesta ya que es una copia directa de la suya)def f()
lugar de laf=lambda
).Ruby, 29 bytes
La variable mágica de Ruby
$.
realiza un seguimiento del número de líneas leídas de stdin. Siga leyendo mientras este número es inferior al recuento de asteriscos (más el 1 inicial).fuente
JavaScript,
534544 bytesEste programa es bastante molesto de usar debido a la falta de buena E / S de JavaScript.
Pide un programa, luego solicita otro programa para cada
*
entrada del programa.fuente
Java solamente
45 6010110010099 bytesCódigo de golf inverso: D. Noté que leí mal las especificaciones (dos veces), pero ahora debería funcionar. Parece bastante simple, tal vez hay una mejor manera de escribir esto como una expresión lamda.
¡Trampa ligeramente sórdida por solo 17 bytes!
Esta versión tendrá entrada a través de una escritura realmente rápida
fuente
if(b=='*')
se puede jugar golfif(b==42)
por -1 byte. Ynew Java.util.Scanner(
debe estar en minúsculasj
. +1 para la parte de código inverso de golf. ;)for(int b:a)
Mathematica, 38 bytes
fuente
APL, 15 bytes
Prueba:
Explicación:
fuente
Perl, 33 bytes
Cuenta el número de veces que * ocurre en la entrada y lo agrega al número de veces que se repite. Siento que debería haber una manera de hacer la disminución en el mismo paso que el incremento, pero no pude resolverlo.
fuente