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。