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,的源具有以下内容: (:use [clojure.xml :as xml :only []] [clojure.contrib.seq :only [fill-queue]]) 使用clojure.xml但不列出:only参数的目的是什么?请注意:as xml与:only[]组合时,似乎使该行等同于(:require[clojure.xml:as xml])。如果您想将一些变量复制到本地名称空间(即非空的:only),但允许该名称空间的其余部分通过:as显式别名,则该样式可能很有用

的源具有以下内容:

(:use [clojure.xml :as xml :only []]
      [clojure.contrib.seq :only [fill-queue]])

使用
clojure.xml
但不列出
:only
参数的目的是什么?

请注意
:as xml
:only[]
组合时,似乎使该行等同于
(:require[clojure.xml:as xml])
。如果您想将一些变量复制到本地名称空间(即非空的
:only
),但允许该名称空间的其余部分通过
:as
显式别名,则该样式可能很有用。因为这不是他正在做的,它实际上应该只是一个
:require

可能编写此代码的人已经有了一堆
:使用
声明,并且不想编写单独的
:require
子句。在我看来,这不是一个推荐的决定,但如果他只有一个名称空间,他用这种方式使用它将节省他几个字符?我想知道为什么语言设计师没有选择单一(组合)的use/require表单。@SridharRatnakumar What。“我想知道”这个问题毫无意义。
ns
宏是一个组合的use/require表单,您必须以某种方式指定要解释为
use
的部分,以及要解释为
require
的部分。他不能只是神奇地猜测。@amalloy-我的问题更像是“为什么我们首先需要一个单独的
使用
要求
功能”?我自己做了一点研究,发现了这个可以统一使用/要求的新语法: