gpt4 book ai didi

clojure - 如何捕获 "Row"数字

转载 作者:行者123 更新时间:2023-12-05 00:00:19 24 4
gpt4 key购买 nike

我的问题是如何捕获发生匹配的向量行的索引?在下面的代码中,我做错了什么?

我有一个向量的向量
(def v1 [[44 2 3 4 5][1 6 7 5 10][11 12 13 14 15]])
列索引和比较值

(def cmp-val1 11)
(def col-idx 0)

我想返回比较返回 true 的行索引。使用 col-idx = 0 和 cmp-val1 = 11,我应该看到(第一行编号)返回 2,它返回 1。
(defn ret-match-row
"Return the index of the row, in which the cmp-val is found.
It is okay to increment 0."

[in-seq cmp-val col-idx]

(let [rn 0]
(let [row-num
(for [seq-row in-seq
:let [local-row-num (inc rn)]
:when (= cmp-val (nth seq-row col-idx nil))]

local-row-num)]

(first row-num))))

来自 lein 回复:
bene-csv.core=> (ret-match-row v1 cmp-val1 col-idx)
1

最佳答案

=> (defn ret-match-row
[coll cmp idx]
(keep-indexed (fn [i v] (if (= cmp (get v idx)) i)) coll))

=> (ret-match-row v1 11 0)
(2)

关于clojure - 如何捕获 "Row"数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10440143/

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