关于clojure中"hello world"的一些问题

i_l*_*eys 3 clojure

我在Clojure中有一些关于Hello World的问题:

(println "Hello, world!")
Run Code Online (Sandbox Code Playgroud)
  1. 由于使用了'println',这是否意味着默认情况下某些Java库包含在默认命名空间中,就像在Grails中一样?
  2. 为什么声明周围需要括号?从其他例子(下图)来看,大括号是司空见惯的:

    (let [i(atom 0)](defn generate-unique-id"为每次调用返回一个不同的数字ID."[](swap!i inc)))

  3. 到目前为止,有任何证据证明Clojure可能会流行吗?

Mik*_*zur 8

  1. println是Clojure中的内置函数,恰好与Java中的函数相同(查看源代码).一些Java库默认导入(java.iojava.lang我认为).

  2. 括号是调用函数的语法,来自Lisp.例如,这个函数调用Java:

    addTwoNumbers(4, 5);
    
    Run Code Online (Sandbox Code Playgroud)

    将在Clojure(和Lisp)中编写如下:

    (addTwoNumbers 4 5)
    
    Run Code Online (Sandbox Code Playgroud)
  3. Clojure的社区充满活力,不断发展壮大.查看Google网上论坛

  • 默认情况下不导入`java.io`.只有`java.lang`. (2认同)