J'utilise GNU CLISP et devient fou parce que ce programme:état Newline après avoir lu une ligne avec une invite ne semble pas être mis à jour
(read-line)
(format t "~&<prompt RESPONSE")
Sorties quelque chose comme:
my input...
<prompt RESPONSE
Mais si j'imprimer une invite avant (lecture en ligne) Je reçois une ligne fausse vide:
(format t "~&prompt> ")
(read-line)
(format t "~&<prompt RESPONSE")
par exemple:
prompt> my input...
<prompt RESPONSE
J'ai essayé d'utiliser (finish-output) à la fois avant et après la ligne de lecture, mais cela n'a pas aidé. Je ne comprends pas d'où vient cette ligne vide. Je soupçonne qu'il y a un bug dans CLISP.
Je ne peux pas reproduire le problème sous Linux Mint (dérivé Debian). Utilisez-vous CLISP sous Windows? –
Merci d'avoir posé cette question! J'avais l'intention de taper une question similaire ... Spécifiquement demandant s'il y avait un moyen de rendre la nouvelle ligne conditionnelle au courant de l'entrée de l'utilisateur, parce que d'autres scénarios peuvent également faire ce Non ce que vous voulez ... – lindes
@lindes je pourrais imaginer un scénario dans lequel vous ne savez pas à l'avance si l'entrée de l'utilisateur se termine par une nouvelle ligne, notamment dans les situations où vous acceptez une frappe à la fois. Le REPL ne fonctionne pas de cette façon. Il accepte une ligne d'entrée utilisateur à la fois, se terminant toujours par un saut de ligne. Note latérale: Si vous entrez plus d'une expression à la fois (c'est-à-dire, entrez-les toutes sur une ligne) dans le REPL, la sortie est mélangée, donc je suggère de ne pas le faire. –