Функція списку Ocaml - список, функція, ocaml

У мене є деякі "проблеми" з функціями Ocaml.

Визначте функцію all_odd, який для даної матриці в якості параметра перевіряють, чи всі елементи непарні.

val all_odd : int list list -> bool = <fun>

Приклад:

#let matrix1 = [[1; 2]; [3; 4]];;
val matrix1 : int list list = [[1; 2]; [3; 4]]

#all_odd matrix1;;
- : bool = false;

Відповіді:

2 для відповіді № 1

Ви можете вирішити цю проблему багатьма способами, але найкращим підходом було б розкласти проблему на прості.

  • Крок 1. Яку найменшу проблему вирішити? Як перевірити, чи число непарне

    x mod 2 != 0

  • Крок 2: Як використовувати його для цілого списку чисел

    let isOdd list = List.for_all (fun x -> x mod 2 != 0) list

  • Крок 3: Як використовувати його для матриці

let all_odd matrix =
let isOdd list = List.for_all (fun x -> x mod 2 != 0) list in
List.for_all isOdd matrix

Має сенс?