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