假设一个二维矩阵被表示为向量的向量,使得最内侧的向量分别表示矩阵中的一行。如果行数等于列数,则二维矩阵为正方形。
发布于 2014-02-06 13:51:15
为什么要使用循环递归约束?
如果你可以假设每一行都是相同的大小(规则结构),这是可行的:
(defn is-square [m]
(= (count m) (count (first m))))
如果你想检查每一行:
(defn is-square [m]
(apply = (count m) (map count m)))
如果出于某些原因,你真的想使用loop-recur:
(defn is-square [m]
(loop [[row & more] m]
(if row
(if (= (count row) (count m))
(recur more)
false)
true)))
https://stackoverflow.com/questions/21594466
复制相似问题