A menudo olvido lo que quería decir cuando la maestra me llama para hablar. ¿Puedes hacerme una herramienta para resolver esto?
Requisitos:
- El programa debe recorrer de la siguiente manera:
- Primero, tome en entrada
- Si la entrada está vacía, imprima la última pregunta almacenada.
- De lo contrario, almacene la entrada como una pregunta.
Notas:
- La entrada nunca estará vacía si no hay preguntas almacenadas.
Aclaración: el programa no necesita almacenar múltiples preguntas. Originalmente quería que almacenara múltiples, pero lo cambié después de que muchas personas entendieron mal la pregunta.
Recuerde, este es el código de golf , por lo que gana el código con el menor número de bytes.
Respuestas:
Perl,
131714 +1 = 15 bytes+1 para la
-n
bandera (guardado 4 bytes gracias a @Dada)Mientras la entrada no sea igual al retorno de carro, almacena la entrada en
$;
. Si es igual al retorno de carro, imprime lo que ya está dentro$;
.Esto supone que todas las entradas pueden caracterizarse como preguntas, incluso si son gramaticalmente, no lo son.
fuente
ne
lugar deeq
(en este momento esto no funciona)././
lugar de$/ne$_
;-)05AB1E,
121110 bytes¡Gracias @daHugLenny y @Adnan por 1 byte!
¡Gracias @Emigna por 1 byte!
fuente
®
y©
conX
yU
, no necesita la barra invertida.Haskell, 49 bytes
Cómo funciona: comienza con
g ""
. El parámetros
de funcióng
es la pregunta en la tienda.g
lee la siguiente línea de stdin y la pasa (y también s) a#
. Si la línea está vacía,#
imprime la tienda yg
vuelve a llamar . Si la línea no está vacía,g
se llama con la línea como la nueva tienda.fuente
JavaScript
363431 bytesUn bucle infinito sigue pidiendo entrada y la almacena
b
. Si la entrada no está vacía, se almacenaa
, de lo contrarioa
se imprime el valor de .Ahorró 2 bytes gracias a @ETHproductions
fuente
1
, y otro moviéndoseb?a=b:alert(a)
a la última sección dentro del ciclo for (iefor(a=0;;b?a=b:alert(a))b=prompt()
)a=0
tampoco es necesario. Dado que la entrada solo puede estar vacía si hay preguntas almacenadas,a
no se hará referencia si no se ha asignado.Mathematica, 44 bytes
Programa completo El carácter Unicode es U + 221E INFINITY para
\[Infinity]
.fuente
Python 3, 31 bytes
¡Pruébalo!
-1 byte gracias a Flp.Tkc
fuente
reticular, 12 bytes
Pruébalo en línea!
Explicación
fuente
Pyke, 6 bytes
Pruébalo aquí!
fuente
Python3 - 49 bytes
fuente
NameError: name 'b' is not defined
b=input()
. ¡Gracias!Python 3, 34 bytes
fuente
Python 3, 60 bytes
fuente
CMD, 37 bytes
Lamentablemente
set
no toma entrada vacía :(en un nombre de archivo
c.cmd
oen cualquier archivo Trabajo (uso
-
como vacío):fuente
set/p
nunca hará una variable vacía, por lo que al menos necesitaset a=
en la primera línea; También creo que te refieresset b=%a%
.APLX, 19 bytes
Explicación:
fuente
C,
7363 bytesSolo usa 1 búfer y un único carácter para manejar la lógica. Si el usuario no ingresa nada, solo se sobrescribe el primer carácter en el búfer
'\0'
, en ese caso se restaurax
e imprime; de lo contrario, copie la primera letrax
para su uso posterior.Código anterior:
fuente
Java 7,
189187178 bytes ..-9 bytes usando
new java.util.Scanner
directamente, gracias a @cliffroot .Probablemente la primera vez que usé un
do-while
en un desafío codegolf ...Cuando se permiten funciones en lugar de programas, son 135 bytes (todavía muchas veces más que la mayoría de las otras respuestas ...)
fuente
void c(){for(String s="",x;(x=new java.util.Scanner(System.in).nextLine())!=null;)if(x.isEmpty())System.out.println(s);else s=x;}
for
o enwhile
alguna parte? ... ¿Qué es(x=new java.util.Scanner(System.in).nextLine())!=null;)
?void c(){for(String s="",x;for(x=new java.util.Scanner(System.in).nextLine())!=null;)if(x.isEmpty())System.out.println(s);else s=x;}
y en realidad es 1 byte más largo que la versión condo-while
es -void c(){String s="",x;do{x=new java.util.Scanner(System.in).nextLine();if(x.isEmpty())System.out.println(s);else s=x;}while(1>0);}
sed, 10 bytes
Explicación:
¡Es agradable ver un lenguaje exotérico (es decir, "no esotérico") vinculado con algunos de los idiomas de golf!
fuente