我是 clojure 的新手我试图找出 clojure 中的向量是否具有连续元素:在 python 中使用 numpy 很简单
(np.diff(np.sort(np.array(numbers))))
但是我在寻找类似的方法时迷失了方向:我的策略是
例如
(def x `(5 7 3 6 4))
输出将是 (1 1 1 1)
我很困惑如何解决这个问题。
尝试这样的事情:
(defn diff [vals]
(map - (next vals) vals))
Run Code Online (Sandbox Code Playgroud)
这将返回每对连续元素之间相等的差异列表。它的工作原理是next简单地将值序列偏移一个元素。
用法示例:
(diff [1 2 2 3])
=> (1 0 1)
Run Code Online (Sandbox Code Playgroud)
要测试是否存在连续数字,您只需检查1此列表中是否存在该值。