Ocaml - проверка того, что все строки матрицы имеют одинаковую длину - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь найти способ в ocaml применять функции к матрицам.

В моей реализации матрица - это список int из списка int (как в матрице - список int, которыйсодержит другие int-списки)

Моя идея сейчас такова:

let valid_matrix x =
  match x with
  [] -> true
  | (map length x) ->
 ;;

(Карта и длина - это отдельные функции, которые находят количество элементов в списке и выполняют функцию карты, в которойфункция применяется ко всем элементам списка, я не могу использовать библиотеку).

Я знаю, что этот код неполон, но я не уверен, как сравнивать количество элементов в каждой матрице друг с другом, и я неЯ не знаю, как мне получить доступ к каждому отдельному списку int (строке) в матрице, если бы я хотел сделать дальнейшие манипуляции с ним.

С уважением.

1 Ответ

1 голос
/ 17 октября 2019

"Я не могу использовать библиотеку" =>, так что это домашнее задание. Никакого кода для вас, только подсказки.

Разделите вашу проблему на две части:

1) Измените строки матрицы на их длину. Для этого примените функцию длины к каждой строке матрицы (ваша функция карты). Затем это дает вам список int, содержащий длину каждой строки.

2) Убедитесь, что все значения в списке одинаковы.

...