【发布时间】:2016-02-27 13:00:38
【问题描述】:
我正在尝试在 clojure 中对向量运行一些算术运算,但我似乎无法让它工作。我有这些向量....
locs - [[3 3] [5 5] [1 1] [2 2]]
tlocs - [[2 2] [4 5]]
rng - [2]
我想要做的是迭代或重复 locs 并获取第一组数字并与第一组 tlocs 进行检查,看看它们是否在 rng 中的数据范围内。因此,例如在第一轮中,它会检查 [3 3] 是否在 [2 2] 范围内,然后检查 [5 5] 是否在 [2 2] 范围内,而不是。一旦我针对 tlocs 中的第一组完成了所有 locs 值,它将再次执行,但使用 [4 5] 进行比较。
谁能帮我写一个这样的函数??
我尝试做这样的事情,但它不起作用而且看起来也不正确
(defn check [locs tlocs rng 0]
(loop [locs tlocs rng 0]
(<= (first t (first d)r)
(recur (rest locs) (inc index)))))
【问题讨论】:
-
你能具体说明“在范围内”是什么意思吗?为什么
[3 3]不在[2 2]和[5 1]范围内?如果函数check: 0 不允许出现在参数列表中。loop看起来很狡猾:你影子locs和rng参数。 -
in range as in,距离 so 米,例如最大范围是 2 米,[3 3] 距离 [2 2] 仅 1 米。但是 [5 5], 5 - 2 = 3 超出了范围,因为它超过了 2。但它在第二个 tloc [4 5] 的范围内
-
你希望结果是什么?
-
真的是假的,我试图表示一个图,看看它是否连接或在范围内。所以 [1 2] 是图表上的位置,我想看看它们是否在范围内
-
@Freeman 等等,
[2 2]是图中的位置吗?或者它是一个范围?从您之前的评论中,听起来可能两者兼而有之?这有什么用?