stream - How to create a simple userprompt in clojure -


consider simple function definition in clojure:

(defn prompt []   (print ">>> ")   (read-line)) 

my ambition let user enter string prepended prompt-prefix. however, seems read-line gets executed before print statement. however, flushing output stream

(defn prompt []   (print ">>> ")   (flush)   (read-line)) 

this function works intended. why manually have flush out in order ">>> " written out? according docs, functions , do should execute expressions in order.

they executed in order. executing print doesn't mean given output flushed whatever stream *out* variable pointing to. docs say, print function

prints object(s) output stream current value of *out*.

and default, *out* points printwriter target of system.out. printwriter instances, flushing isn't enabled default. although, can enable auto-flush via using certain constructors creating instance.

even then, printwriter instances:

if automatic flushing enabled done when 1 of println, printf, or format methods invoked, rather whenever newline character happens output.


Comments

Popular posts from this blog

resizing Telegram inline keyboard -

command line - How can a Python program background itself? -

php - "cURL error 28: Resolving timed out" on Wordpress on Azure App Service on Linux -