dictionary - clojure 中的地图给出了意想不到的结果
问题描述
在clojure中使用map,检查字符串是否包含大写字符。
(map #(= (clojure.string/upper-case %) %) "Hello")
预期的结果。
(true false false false false)
不幸的是,结果出乎意料。
(false false false false false)
我在第一个“%”中替换“H”时做了一个实验,结果还是出乎意料。
(map #(= (clojure.string/upper-case "H") %) "Hello")
(false false false false false)
当我在第二个“%”中替换“H”时,结果发生了变化,这是一个预期的结果。
(map #(= (clojure.string/upper-case %) "H) "Hello")
(true false false false false)
那有什么问题?请随意发表评论。
解决方案
正如其他人指出的那样,将字符与字符串进行比较是行不通的。比较字符串将起作用:
(map #(= (clojure.string/upper-case %) (str %)) "Hello")
=> (true false false false false)
然而,这是更直接的:
(map #(Character/isUpperCase %) "Hello")
=> (true false false false false)
推荐阅读
- artifactory - 从 json 创建多个工件存储库
- java - 在 Spring MVC 中,使用 HQL JOIN 我多次获得相同的数据
- javascript - 如何从 asp.net 中的动态下拉列表中打开引导模型
- python - 使用 Anytree 和 graphviz 在 python 中渲染树。无法打开文件
- php - CodeIgniter:代理检查和阻止
- c# - C#中对象实例化左侧的抽象类
- r - Google Analytics - 同一交易 ID 的不同来源和媒介
- sql - 用于矩阵报表的动态 Pivot Sql
- arrays - 如何在 ReactJS(create-react-app)中显示来自 JSON 的 png?
- c# - 如何在 Enumerable.Zip 扩展方法 c# 中删除重复项?