我有这个矩阵:
let arr = Array.make_matrix 4 4 0;;
以及要检查所有元素是否均为0的内容。
我听说过 for_all 函数,但是我不太清楚该如何将其与矩阵一起使用,因为它需要一个int数组或一个int列表。
答案 0 :(得分:1)
根据文档(https://caml.inria.fr/pub/docs/manual-ocaml/libref/Array.html),以下是您需要了解的所有内容:
val for_all : ('a -> bool) -> 'a array -> bool
Array.for_all p [|a1; ...; an|]
检查数组的所有元素是否满足谓词p
。也就是说,它返回(p a1) && (p a2) && ... && (p an)
。
示例:Array.for_all ((=) 0)
的类型为int array -> bool
,并检查所有元素是否均为零。
答案 1 :(得分:0)
矩阵是一个数组数组(如果需要,则是一个行数组)。因此,您需要在每一行中执行一个for_all
来检查该行的所有元素是否为零,而另一个外部for_all
来检查该行中的所有for_all
是否都在正确:
let arr = Array.make_matrix 4 4 0 in
Array.for_all (fun row ->
Array.for_all ((=) 0) row) arr