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.data/diff的输出中有'nil's?_Clojure - Fatal编程技术网

为什么clojure.data/diff的输出中有'nil's?

为什么clojure.data/diff的输出中有'nil's?,clojure,Clojure,那些“零”是从哪里来的 谢谢 从文档中: 递归地比较a和b,返回 [a中只有东西b中只有东西都有]。 比较规则: 对于相等的a和b,返回[nil nil a]。 在关键点匹配且值不同的位置,贴图将被细分。 集合永远不会被细分。 所有连续的事物都被视为关联集合 通过它们的索引,结果作为向量返回。 其他一切,包括字符串!被视为 一个原子与另一个原子比较是否相等。 关键的一点是,向量被视为关联集合,因此结果两部分中的内容都是“关联的”,这意味着如果两部分中的内容都由2设置关键帧(在您的案例中,这意味着

那些“零”是从哪里来的

谢谢

从文档中:

递归地比较a和b,返回 [a中只有东西b中只有东西都有]。 比较规则:

对于相等的a和b,返回[nil nil a]。 在关键点匹配且值不同的位置,贴图将被细分。 集合永远不会被细分。 所有连续的事物都被视为关联集合 通过它们的索引,结果作为向量返回。 其他一切,包括字符串!被视为 一个原子与另一个原子比较是否相等。 关键的一点是,向量被视为关联集合,因此结果两部分中的内容都是“关联的”,这意味着如果两部分中的内容都由2设置关键帧(在您的案例中,这意味着它在向量中的索引为2),那么它应该由结果中的同一个关键帧显示。显然,对于包含索引2的向量,它的长度应该至少为3,这就是为什么它在值之前有nils,只是作为“nothing”的占位符

还有一个例子:

user=> (def one [ "a" "b" "c" ])
#'user/one
user=> (def two [ "x" "y" "c" ])
#'user/two
user=> (require 'clojure.data)
nil
user=> (clojure.data/diff one two)
[["a" "b"] ["x" "y"] [nil nil "c"]]
从文档中:

递归地比较a和b,返回 [a中只有东西b中只有东西都有]。 比较规则:

对于相等的a和b,返回[nil nil a]。 在关键点匹配且值不同的位置,贴图将被细分。 集合永远不会被细分。 所有连续的事物都被视为关联集合 通过它们的索引,结果作为向量返回。 其他一切,包括字符串!被视为 一个原子与另一个原子比较是否相等。 关键的一点是,向量被视为关联集合,因此结果两部分中的内容都是“关联的”,这意味着如果两部分中的内容都由2设置关键帧(在您的案例中,这意味着它在向量中的索引为2),那么它应该由结果中的同一个关键帧显示。显然,对于包含索引2的向量,它的长度应该至少为3,这就是为什么它在值之前有nils,只是作为“nothing”的占位符

还有一个例子:

user=> (def one [ "a" "b" "c" ])
#'user/one
user=> (def two [ "x" "y" "c" ])
#'user/two
user=> (require 'clojure.data)
nil
user=> (clojure.data/diff one two)
[["a" "b"] ["x" "y"] [nil nil "c"]]