clojure - clojure 中的函数查找
问题描述
帮帮我,我需要编写查找函数,在列表列表中查找值,因为每个元素都是有序的(键值)。例如
((key1 value1) (key2 value2) ....)
这个功能需要
(look-up key list-of-lists)
并返回具有键的列表的值。例如:
(look-up b '(((a b) 1) (c 2) (b 3)))3
(look-up (a b) '(((a b) 1) (c 2) (b 3)))1
(look-up d '(((a b) 1) (c 2) (b 3)))nil
我有这个代码:
(defn look-up [key list-of-lists]
(if (= key (first(first list-of-lists))) (second(first list-of-lists)))
(:else (look-up (rest list-of-lists key))))
解决方案
(defn lookup [x xs]
(first (for [[k v] xs :when (= k x)]
v)))
推荐阅读
- php - 通过 ssh 关机无法正常工作
- sql - 在 where 语句中选择
- azure - 有没有办法在 azure devops 中进行选择性部署?
- report - 有什么方法可以使用 newman 下载包含 console.log 数据的 CSV 报告
- c# - C# 以及如何使用“System.Timers”
- ruby-on-rails - 数据库清理器策略正在清理除截断块策略之外的表
- c# - System.Data.DataRowView' 不包含单击链接按钮时名称错误的属性
- git - 终止于 SIGABRT
- c# - WPF TreeView,IsExpanded 的 TwoWay 绑定不影响 C# 代码中的 GUI
- python - 使用 find() 从字符串变量中提取电子邮件