從manual of clojure約seq
我們閱讀:;; (seq x) is the recommended idiom for testing if a collection is not empty (every? seq ["1" [1] '(1) {:1 1} #{1}]) ;;=> true
。但是空的集合本身也會返回nil
,那麼seq
用於測試集合的空虛的用法是什麼?在Clojure中使用Seq功能
2
A
回答
3
空集是不falsey,所以在測試它不會,如果它是空的或無關緊要的:如果你想做些別的事情,如果它是空的
(if '() "a" "b")
=> "a"
所以:
(if (seq '()) "a" "b")
=> "b"
3
從該頁面頂部的文檔:
序列也適用於字符串,本地Java數組(引用類型)和 實現Iterable的任何對象
所以使用了序列測試任何這些集合類型中的空白效果。所以你會得到一個一致的慣用方式來檢查任何這些類型的空白,如示例所示。
事實上seq在空集合上返回nil
,並且nil
也使檢查更簡單,而不需要檢查空或零。
相關問題
- 1. 什麼時候應該避免在Clojure中使用`seq`?
- 2. 如何使用clojure文檔功能?
- 3. 宏和功能Clojure中
- 4. clojure中的lazy-seq有什麼意義?
- 5. Clojure打印功能
- 6. Clojure - 遞歸功能
- 7. 在Clojure的`first`功能的性能
- 8. 使用循環,惰性seq的Clojure堆棧溢出?
- 9. 重新實現Clojure的懶惰SEQ
- 10. 這個clojure prime seq有什麼問題?
- 11. Clojure:找出一個集合是否能夠seq-able
- 12. Clojure的:一個功能
- 13. Clojure讀線功能問題
- 14. 如何在功能中使用功能
- 15. Clojure警告:「resultset-seq已經存在於clojure.core中」
- 16. Clojure:調用多個函數功能
- 17. Clojure中最簡單的懶惰功能
- 18. 怪事Clojure中的地圖功能
- 19. Clojure中的習慣模式功能
- 20. 從Clojure功能中返回地圖
- 21. Clojure中的模式匹配功能?
- 22. 有「應用」的內置功能的Clojure生產功能
- 23. Clojure中不能調用createTempDirectory Clojure中
- 24. Clojure Avout在功能上等同於Google Wave中的操作轉換功能嗎?
- 25. 如何在Seq上進行過濾[部分功能]
- 26. 使Clojure的defprotocol在現有功能下可以很好(多態)
- 27. Clojure - 從一個seq向量中計算唯一值
- 28. 在cljx中使用Clojure宏
- 29. 在Clojure中使用Java庫
- 30. 在Clojure中使用宏
'(=()nil) - > false' – lispHK01
一個空集合不*返回'nil'。你可能會想到無核心,這在另一個方向工作:如果你有'無',你正在尋找一個序列,它將作爲一個空的。 *但反之亦然*。在[other lisps](http://clojure.org/lisps)中,您的里程將會有所不同:*空集合與nil不同。 Clojure不等於零和'()。* – Thumbnail