J'oublie souvent ce que je voulais dire quand le professeur m'appelle à parler. Pouvez-vous me faire un outil pour résoudre ce problème?
Exigences:
- Le programme doit boucler comme suit:
- Tout d'abord, saisissez
- Si l'entrée est vide, imprimez la dernière question enregistrée.
- Sinon, stockez l'entrée sous forme de question.
Remarques:
- L'entrée ne sera jamais vide si aucune question n'est stockée.
Clarification: Le programme n'a pas besoin de stocker plusieurs questions. Je voulais à l'origine qu'il en stocke plusieurs, mais je l'ai changé après que beaucoup de gens aient mal compris la question.
N'oubliez pas qu'il s'agit de code-golf , donc le code avec le plus petit nombre d'octets l'emporte.
Réponses:
Perl,
131714 +1 = 15 octets+1 pour le
-n
drapeau (enregistré 4 octets grâce à @Dada)Tant que l'entrée n'est pas égale au retour chariot, elle stocke l'entrée dans
$;
. S'il est égal au retour chariot, il imprime ce qui est déjà dedans$;
.Cela suppose que toutes les entrées peuvent être caractérisées comme des questions, même si grammaticalement, elles ne le sont pas.
la source
ne
place deeq
(pour l'instant cela ne fonctionne pas)././
place de$/ne$_
;-)05AB1E,
121110 octetsMerci @daHugLenny et @Adnan pour 1 octet!
Merci @Emigna pour 1 octet!
la source
®
et©
parX
etU
, vous n'avez pas besoin de la barre oblique inverse.Haskell, 49 octets
Comment ça marche: commencez par
g ""
. Le paramètres
de fonctiong
est la question en magasin.g
lit la ligne suivante depuis stdin et la passe (ainsi que s) à#
. Si la ligne est vide,#
imprime le magasin et rappelleg
. Si la ligne n'est pas vide,g
est appelée avec la ligne comme nouveau magasin.la source
JavaScript,
363431 octetsUne boucle infinie continue de demander une entrée et la stocke
b
. Si l'entrée n'est pas vide, elle est ensuite stockéea
, sinon la valeur dea
est imprimée.Enregistré 2 octets grâce à @ETHproductions
la source
1
, et un autre en vous déplaçantb?a=b:alert(a)
dans la dernière section de la boucle for (c'est-à-direfor(a=0;;b?a=b:alert(a))b=prompt()
)a=0
n'est pas nécessaire non plus. Étant donné que l'entrée ne peut être vide que si des questions sont stockées,a
elle ne sera pas référencée si elle n'a pas été affectée.Mathematica, 44 octets
Programme complet. Le caractère Unicode est U + 221E INFINITY pour
\[Infinity]
.la source
Python 3, 31 octets
Essaye le!
-1 octet grâce à Flp.Tkc
la source
réticulaire, 12 octets
Essayez-le en ligne!
Explication
la source
Pyke, 6 octets
Essayez-le ici!
la source
Python3 - 49 octets
la source
NameError: name 'b' is not defined
b=input()
. Merci!Python 3, 34 octets
la source
Python 3, 60 octets
la source
CMD, 37 octets
Malheureusement,
set
ne prend pas d'entrée vide :(dans un nom de fichier
c.cmd
oudans n'importe quel fichier. Travail (utiliser
-
comme vide):la source
set/p
ne rendra jamais une variable vide, donc au moins vous avez besoinset a=
sur la première ligne; je pense aussi que vous voulez direset b=%a%
.APLX, 19 octets
Explication:
la source
C,
7363 octetsUtilise uniquement 1 tampon et un seul caractère pour gérer la logique. Si l'utilisateur ne saisit rien, seul le premier caractère du tampon est écrasé
'\0'
, dans ce cas, il est restauréx
et imprimé, sinon copiez la première lettrex
pour une utilisation ultérieure.Code précédent:
la source
Java 7,
189187178 octets ..-9 octets en utilisant
new java.util.Scanner
directement, grâce à @cliffroot .Probablement la première fois que j'ai utilisé un
do-while
dans un défi de codegolf ..Lorsque les fonctions sont autorisées à la place des programmes, c'est 135 octets (toujours beaucoup plus que la plupart des autres réponses ..)
la source
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
ouwhile
quelque part? .. Qu'est-ce que c'est(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;}
et c'est en fait 1 octet de plus que la version avecdo-while
est -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 octets
Explication:
C'est agréable de voir une langue exotérique (c'est-à-dire "non ésotérique") liée à certaines des langues du golf!
la source