Clojure打印函数

Clojure打印函数,clojure,Clojure,这里是完整的Clojure新手,所以我可能遗漏了Clojure工作方式的一些基本内容,但我不了解Clojure评估函数的方式 (defn get-output [] (print "Enter: Width <RTN> Height <RTN> Price <RTN> Shape <RTN>") (print (calculate (read-string (read-line)))) 我习惯于Ruby或C这样的语言,第一个print函

这里是完整的Clojure新手,所以我可能遗漏了Clojure工作方式的一些基本内容,但我不了解Clojure评估函数的方式

(defn get-output [] 
  (print "Enter: Width <RTN> Height <RTN> Price <RTN> Shape <RTN>")
  (print (calculate (read-string (read-line))))
我习惯于Ruby或C这样的语言,第一个print函数将被计算,将字符串打印到终端。然后计算第二个打印函数,提示用户输入

然而,实际情况是,终端首先提示用户输入,然后打印Enter:Width-Height-Price-Shape。最后,程序输出计算的返回值


为什么这些打印语句没有按我预期的顺序执行?

这些语句按照您预期的顺序执行。问题是打印不会刷新出缓冲区。您可以在第一个print语句之后调用flush,也可以调用println

语句按照预期的顺序执行。问题是打印不会刷新出缓冲区。您可以在第一个print语句之后调用flush,也可以调用println