Clojure:O(1)函数检查序列是否恰好具有1个元素

阿特·朱沃宁(Atte Juvonen)

有没有一种快速的方法来检查一个序列在Clojure中是否恰好有1个元素?请注意,序列可能包含nil。

如果我正确地阅读了源代码,则调用count一个序列会花费O(n)的时间。

替代解决方案:

(and
  (not (empty? a-seq))
  (empty? (rest a-seq)))

医生说,调用empty?集合coll与调用相同(not (seq coll)),但是他们没有指定其效率或在调用empty?序列时会发生什么我试图在github存储库中搜索empty?实现方式,但是它忽略了搜索中的问号,并且对“ empty”的点击率很高。我可以想象empty?并且rest是O(1),但是话又回来了count……

第3996章

因为

user=> (empty? (cycle [1]))
false

(函数终止的事实),我假设empty?在恒定时间内求值,即在恒定时间内(seq coll)初始化一个序列。

user=> (source empty?)
(defn empty?
  "Returns true if coll has no items - same as (not (seq coll)).
  Please use the idiom (seq x) rather than (not (empty? x))"
  {:added "1.0"
   :static true}
  [coll] (not (seq coll)))
nil

您的代码可以很好地完成任务。也许我会说:

user=> (defn single-elem? [s]
  #_=>   (and
  #_=>     (seq s)
  #_=>     (empty? (rest s))))
#'user/single-elem?

user=> (single-elem? [1])
true
user=> (single-elem? [1 2])
false
user=> (single-elem? [])
nil
user=> (single-elem? {:foo :bar})
true
user=> (single-elem? {:foo :bar :fez 42})
false

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP-检查tinyint在MySQL中是否具有(1)

来自分类Dev

检查两个列表是否具有相同的元素

来自分类Dev

检查元素是否具有CSS动画

来自分类Dev

检查可遍历在Scala中是否包含1个以上元素的有效方法

来自分类Dev

检查两个元素在C ++中是否具有公共元素

来自分类Dev

检查2个列表是否具有相等的元素Haskell

来自分类Dev

序号指标是否具有Clojure函数?

来自分类Dev

如何调试dsymutil错误:“预期Clang模块具有恰好1个编译单元。”

来自分类Dev

查找最多具有h + 1个比较的BST元素

来自分类Dev

如何检查具有类的元素是否是该类的第一个子元素

来自分类Dev

jQuery检查元素是否具有一个类

来自分类Dev

Clojure:O(1)函数检查序列是否恰好具有1个元素

来自分类Dev

如何在O(1)或O(log n)时间复杂度中检查2个c ++数组是否相同(所有元素都相同,所以顺序很重要)?

来自分类Dev

jQuery检查元素是否具有同级

来自分类Dev

是否有Kotlin惯用的方式来检查序列至少包含N个元素?

来自分类Dev

序列1:k-列表列表中是否有序列元素?(在R中)

来自分类Dev

检查两个列表是否具有公共元素

来自分类Dev

检查目录中是否有1个或多个特定文件?

来自分类Dev

检查数组是否包含具有另一个数组的元素的元素

来自分类Dev

检查bash脚本是否恰好具有两个作为目录的参数

来自分类Dev

检查各种元素是否具有类

来自分类Dev

给定m个长度为n的位串,找到是否存在一组恰好k个位串,以使得在每个位置只有1个位串具有一个设置位

来自分类Dev

检查2个列表是否具有相等的元素Haskell

来自分类Dev

编写函数,用于检查列表是否具有相同的元素

来自分类Dev

Clojure中具有超过1种可变参数重载的多功能函数是否有变通办法?

来自分类Dev

用于检查元素是否具有本机JS中的任何此类的函数

来自分类Dev

错误:[$ compile:tplrt]指令“页脚”的模板必须恰好具有一个根元素

来自分类Dev

检查具有相同类的两个元素的两个 ID 是否相等

来自分类Dev

检查元素是否具有特定的 id

Related 相关文章

  1. 1

    PHP-检查tinyint在MySQL中是否具有(1)

  2. 2

    检查两个列表是否具有相同的元素

  3. 3

    检查元素是否具有CSS动画

  4. 4

    检查可遍历在Scala中是否包含1个以上元素的有效方法

  5. 5

    检查两个元素在C ++中是否具有公共元素

  6. 6

    检查2个列表是否具有相等的元素Haskell

  7. 7

    序号指标是否具有Clojure函数?

  8. 8

    如何调试dsymutil错误:“预期Clang模块具有恰好1个编译单元。”

  9. 9

    查找最多具有h + 1个比较的BST元素

  10. 10

    如何检查具有类的元素是否是该类的第一个子元素

  11. 11

    jQuery检查元素是否具有一个类

  12. 12

    Clojure:O(1)函数检查序列是否恰好具有1个元素

  13. 13

    如何在O(1)或O(log n)时间复杂度中检查2个c ++数组是否相同(所有元素都相同,所以顺序很重要)?

  14. 14

    jQuery检查元素是否具有同级

  15. 15

    是否有Kotlin惯用的方式来检查序列至少包含N个元素?

  16. 16

    序列1:k-列表列表中是否有序列元素?(在R中)

  17. 17

    检查两个列表是否具有公共元素

  18. 18

    检查目录中是否有1个或多个特定文件?

  19. 19

    检查数组是否包含具有另一个数组的元素的元素

  20. 20

    检查bash脚本是否恰好具有两个作为目录的参数

  21. 21

    检查各种元素是否具有类

  22. 22

    给定m个长度为n的位串,找到是否存在一组恰好k个位串,以使得在每个位置只有1个位串具有一个设置位

  23. 23

    检查2个列表是否具有相等的元素Haskell

  24. 24

    编写函数,用于检查列表是否具有相同的元素

  25. 25

    Clojure中具有超过1种可变参数重载的多功能函数是否有变通办法?

  26. 26

    用于检查元素是否具有本机JS中的任何此类的函数

  27. 27

    错误:[$ compile:tplrt]指令“页脚”的模板必须恰好具有一个根元素

  28. 28

    检查具有相同类的两个元素的两个 ID 是否相等

  29. 29

    检查元素是否具有特定的 id

热门标签

归档