У мене є деякі "проблеми" з функціями 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
Має сенс?