为什么由Clojure函数返回的nil不返回值?

pcd*_*dro 2 null functional-programming clojure

我是Clojure的新生,当我调用不返回值的函数时,我不明白为什么在REPL中返回"nil".

上面一个例子:

(println "Hello Nil")
nil
Run Code Online (Sandbox Code Playgroud)

什么类型的评估过程达到"零"?

Ala*_*son 12

像Clojure这样的函数式语言的约定,每个函数都需要返回一个值.对于println那些旨在执行副作用(如打印到屏幕)的功能,并不总是清楚返回值可能或应该是什么.

在这些情况下,nil占位符值是"无"或"不适用".

  • 对于“println”,它可以将字符串输出返回到屏幕,但对于“doseq”、“dotimes”等其他函数,尚不清楚好的返回值应该是多少。 (2认同)