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 用apply理解min键_Clojure - Fatal编程技术网

Clojure 用apply理解min键

Clojure 用apply理解min键,clojure,Clojure,我正在读这样一段代码: (应用最小键{:1:2 0,:3 1,:4 10000,:5 1}{:1:3:4:5})=>:3 我不确定为什么会返回:3而不是:1 有人能帮我澄清一下吗?minkey从{:1:3:4:5}返回一个元素x,例如(kx)是最小值,其中k是您的映射。该映射中与:3关联的值为1,这是最小值。当然,其他键,如:1和:5具有相同的值,但不比较键,只比较值。返回最小值的键中的哪一个可能取决于任意因素,例如集合的内部遍历顺序。min key从{:1:3:4:5}返回元素x,例如(kx)

我正在读这样一段代码:

(应用最小键{:1:2 0,:3 1,:4 10000,:5 1}{:1:3:4:5})=>:3

我不确定为什么会返回:3而不是:1


有人能帮我澄清一下吗?

minkey
{:1:3:4:5}
返回一个元素
x
,例如
(kx)
是最小值,其中
k
是您的映射。该映射中与
:3
关联的值为1,这是最小值。当然,其他键,如
:1
:5
具有相同的值,但不比较键,只比较值。返回最小值的键中的哪一个可能取决于任意因素,例如集合的内部遍历顺序。

min key
{:1:3:4:5}
返回元素
x
,例如
(kx)
是最小的,其中
k
是您的映射。该映射中与
:3
关联的值为1,这是最小值。当然,其他键,如
:1
:5
具有相同的值,但不比较键,只比较值。返回最小值的键中的哪一个可能取决于任意因素,如集合的内部遍历顺序。

如果您查看min key source,您将看到它将值与

(如果(
,这意味着如果它们相等,则取第二个。因此,对于具有相同值的多个键,它将始终选择最后一个键,在您的示例中为:3

这是因为您使用了一组值,其内部顺序与输入不同:

答复:

user> #{:1 :3 :4 :5}
#{:4 :1 :5 :3}

因此,按此顺序,:3是最后一个选中的键。

如果您查看min key source,您将看到它将值与

(如果(
,这意味着如果它们相等,则取第二个。因此,对于具有相同值的多个键,它将始终选择最后一个键,在您的示例中为:3

这是因为您使用了一组值,其内部顺序与输入不同:

答复:

user> #{:1 :3 :4 :5}
#{:4 :1 :5 :3}

因此,按此顺序,:3是最后一个选中的键。

Yes@leetwinski,谢谢您的回答。我现在才明白。(关于最后一个)。谢谢你的回答。我现在才明白。(关于最后一个)。谢谢你。谢谢你的回复@coredump.Great。谢谢你回答@coredump。