gpt4 book ai didi

dictionary - 我如何将 doseq 返回的值放在 clojure 中的向量中

转载 作者:行者123 更新时间:2023-12-01 22:23:53 27 4
gpt4 key购买 nike

我是 Clojure 新手。我有一个 map 向量:

(def vecmap [{:a "hello"} {:a "hi"} {:a "hey"}])

基本上我想检查 map 向量中是否存在给定值。我用过这个:

(doseq [r vecmap] (get-in r [:a]))

这将为我获取键 :a 的所有值。但是我想将所有这些值放在一个向量中,这样我就可以使用 contains 检查给定值是否存在于向量中?我如何在 Clojure 中执行此操作?

最佳答案

doseq返回 nil .时期。它无法返回任何其他值。

如果要为顺序输入中的每个项目生成一个值,for接受与 doseq 相同的语法,并返回一个 lazyseq 而不是 nil .

+user=> (def vecmap [{:a "hello"} {:a  "hi"} {:a  "hey"}])
#'user/vecmap
+user=> (for [r vecmap] (get-in r [:a]))
("hello" "hi" "hey")

此外,如果您特别想知道给定键在向量中是否具有非零值,则内置 some专为该任务而设计:

+user=> (some :a vecmap)
"hello"

关于dictionary - 我如何将 doseq 返回的值放在 clojure 中的向量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38030268/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com