Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 函数不';不要在她体内打印整数_Clojure - Fatal编程技术网

Clojure 函数不';不要在她体内打印整数

Clojure 函数不';不要在她体内打印整数,clojure,Clojure,我是clojure的乞丐,我在读一本书,书中包含了这个功能: (defn illustrative-function [] (+ 1 304) 30 "joe") 如果您在没有参数的情况下调用该函数,它只返回“joe”,如您所见: (illustrative-function ) => "joe" 我的问题: 为什么函数中的数字没有打印出来?305和30?即使使用and参数(和参数),也不会返回任何内容: (defn illustrative-f

我是clojure的乞丐,我在读一本书,书中包含了这个功能:

(defn illustrative-function [] (+ 1 304) 30 "joe")
如果您在没有参数的情况下调用该函数,它只返回“joe”,如您所见:

(illustrative-function )
=> "joe"
我的问题:

为什么函数中的数字没有打印出来?305和30?即使使用and参数(和参数),也不会返回任何内容:

(defn illustrative-function [x] x (+ 1 304) 30 "joe")
=> #'dev-projects.core/illustrative-function

(illustrative-function 3)
=> "joe"

(illustrative-function [3])
=> "joe"
有人能解释为什么会这样吗

为什么不打印整数和参数


谢谢

一个
defn
的主体被包裹在一个
do
中<代码>执行允许您执行 多个指示通常用于副作用。最后一句话
do
是返回值。这看起来像这样:

(defn illustrative-function 
  [] 
  (do
    (+ 1 304) ; no-op
    30        ; no-op
    "joe"))   ; return
(+1 304)
被读取和计算,然后丢弃<代码>30只是 阅读并扔掉<代码>“joe”然后是
do
的返回 函数的返回

如果你想“打印”某物,你必须明确地
打印它。
例如,将
30
替换为
(println 30)
。还要注意,在REPL中 如果从调用该函数,返回值将打印到REPL中
在其他地方,除非显式打印,否则不会打印任何内容。

defn的主体被包装在
do
中<代码>执行
允许您执行 多个指示通常用于副作用。最后一句话
do
是返回值。这看起来像这样:

(defn illustrative-function 
  [] 
  (do
    (+ 1 304) ; no-op
    30        ; no-op
    "joe"))   ; return
(+1 304)
被读取和计算,然后丢弃<代码>30只是 阅读并扔掉<代码>“joe”然后是
do
的返回 函数的返回

如果你想“打印”某物,你必须明确地
打印它。
例如,将
30
替换为
(println 30)
。还要注意,在REPL中 如果从调用该函数,返回值将打印到REPL中 在其他地方,除非显式打印,否则不会打印任何内容