Я новичок в OCaml и хотел бы реализовать функцию исключения Гаусса в качестве упражнения. Я могу легко сделать это с помощью алгоритма с отслеживанием состояния, то есть хранить матрицу в памяти и рекурсивно работать с ней, передавая ссылку на нее.
Эта сохраняемость, однако, отдает императивным программированием. Я знаю, что в OCaml есть возможности для этого, но я хотел бы спросить, есть ли какой-нибудь умный функциональный способ, о котором я сначала не подумал.