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 Falsy使用contains返回值?功能_Clojure - Fatal编程技术网

Clojure Falsy使用contains返回值?功能

Clojure Falsy使用contains返回值?功能,clojure,Clojure,我不确定我在这里做错了什么: (defstruct prefix :a :b :c :d :e) (def peN (struct prefix "pen" "pe" "pem" "peng" "peny")) (contains? peN "pen") ;=> false 我希望它会回到现实。也许我没有使用contains?正确吗 检查键,而不是值。这是确定地图是否包含该值的一种方法: (some #(= "pen" %)(vals peN)) 检查键,而不是值。这是确定地图是

我不确定我在这里做错了什么:

(defstruct prefix :a :b :c :d :e)

(def peN (struct prefix "pen" "pe" "pem" "peng" "peny"))

(contains? peN "pen") ;=> false
我希望它会回到现实。也许我没有使用contains?正确吗

检查键,而不是值。这是确定地图是否包含该值的一种方法:

(some #(= "pen" %)(vals peN)) 
检查键,而不是值。这是确定地图是否包含该值的一种方法:

(some #(= "pen" %)(vals peN)) 
一是,;您应改为使用:

现在,为什么对
的调用包含?
返回
false
?好的,记录基本上只是带有一点额外功能的映射(这在本例中是无关的),因此这相当于

(def pen {:a "pen" :b "pe" :c "pem" :d "peng" :e "peny"})

(contains? pen "pen") ;=> false
现在,如果我们查看的文档字符串,我们可以找到我们的答案:

如果给定集合中存在键,则返回true,否则返回false

在本例中,我们集合中的密钥集是

(keys pen) ;=> (:a :b :c :d :e)
我们真正想要的是查看
笔中的值集是否包含
,如下所示:

(contains? (set (vals pen)) "pen") ;=> true
但这就引出了一个问题:你为什么不先做一组笔呢

(def pen #{"pen" "pe" "pem" "peng" "peny"})

(contains? pen "pen") ;=> true
一是,;您应改为使用:

现在,为什么对
的调用包含?
返回
false
?好的,记录基本上只是带有一点额外功能的映射(这在本例中是无关的),因此这相当于

(def pen {:a "pen" :b "pe" :c "pem" :d "peng" :e "peny"})

(contains? pen "pen") ;=> false
现在,如果我们查看的文档字符串,我们可以找到我们的答案:

如果给定集合中存在键,则返回true,否则返回false

在本例中,我们集合中的密钥集是

(keys pen) ;=> (:a :b :c :d :e)
我们真正想要的是查看
笔中的值集是否包含
,如下所示:

(contains? (set (vals pen)) "pen") ;=> true
但这就引出了一个问题:你为什么不先做一组笔呢

(def pen #{"pen" "pe" "pem" "peng" "peny"})

(contains? pen "pen") ;=> true

我将使用什么函数检查值?我将使用什么函数检查值?我有几种不同类型的前缀。“布景更有意义吗?”MahmudAdam,我不太明白。你能解释一下“我有几种不同类型的前缀”是什么意思吗?我创建了一个名为prefix的通用映射,因为我有多种前缀可以使用。我使用的语言有五种形式的钢笔前缀和五种不同形式的男士前缀。因此,我认为为前缀创建一个通用的映射结构是一个不错的选择,这样我就可以基于相同的前缀结构创建不同的映射;至少,我可能会在记录上使用地图。由于您的键只是
:a
:b
:c
,等等,所以我认为它们并不重要。我有几种不同的前缀。“布景更有意义吗?”MahmudAdam,我不太明白。你能解释一下“我有几种不同类型的前缀”是什么意思吗?我创建了一个名为prefix的通用映射,因为我有多种前缀可以使用。我使用的语言有五种形式的钢笔前缀和五种不同形式的男士前缀。因此,我认为为前缀创建一个通用的映射结构是一个不错的选择,这样我就可以基于相同的前缀结构创建不同的映射;至少,我可能会在记录上使用地图。由于您的键只是
:a
:b
:c
,等等,所以我认为它们并不重要。