Clojure“包含"的问题 [英] Issue with Clojure 'contains'

查看:18
本文介绍了Clojure“包含"的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 Closure Box 浏览一些 Clojure 教程,并输入以下代码:

user>(def stooges(矢量Moe"Larry"Curly"))#'用户/走狗用户>(包含?走狗萌")错误的

这不应该评估为 TRUE 吗?任何帮助表示赞赏.

解决方案

向量类似于数组.contains? 返回 true 如果key 存在于集合中.您应该寻找键/索引"0、1 或 2

user=>(def stooges(矢量Moe"Larry"Curly"))#'用户/走狗用户=>(包含?走狗 1)真的用户=>(包含?走狗 5)错误的

如果您使用的是散列...

user=>(def stooges {:moe "Moe" :larry "Larry" :curly "Curly"})#'用户/走狗用户=>(包含?走狗 :moe)真的用户=>(包含?走狗:foo)错误的

正如 mikera 所建议的,您可能想要类似 clojure.core/some

I am going through some Clojure tutorials using Closure Box, and entered the following code:

user> (def stooges (vector "Moe" "Larry" "Curly"))
#'user/stooges
user> (contains? stooges "Moe")
false

Shouldn't this evaluate to TRUE ? Any help is appreciated.

解决方案

A vector is similar to an array. contains? returns true if the key exists in the collection. You should be looking for the "key/index" 0, 1 or 2

user=> (def stooges (vector "Moe" "Larry" "Curly"))
#'user/stooges
user=> (contains? stooges 1)
true
user=> (contains? stooges 5)    
false

If you were using a hash...

user=> (def stooges {:moe "Moe" :larry "Larry" :curly "Curly"})
#'user/stooges
user=> (contains? stooges :moe)
true
user=> (contains? stooges :foo)
false

As mikera suggests, you probably want something like clojure.core/some

这篇关于Clojure“包含"的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆