我需要遍历ocaml中的列表列表。如何迭代列表列表,将每个列表的每个元素都比较为零?如果元素大于零,则返回false并停止递归。
函数 必须 具有签名:int list list - >布尔
请不要告诉我使用"数组的方法。"或关键字" in"。任何帮助都会很棒!
答案 0 :(得分:0)
let all_lte_zero xss = List.for_all (fun xs -> List.for_all (fun x -> x <= 0) xs) xss;;
根据ocaml文档,for_all p [a1; ...; an]
检查列表中的所有元素是否满足谓词p。
因此,如果任何元素大于0,则谓词fun x -> x <= 0
将评估为false,因此List.for_all
将评估为false。