需要帮助将函数从C++移植到Ocaml

Need help in porting a function from C++ to Ocaml

本文关键字:Ocaml C++ 帮助 函数      更新时间:2023-10-16

我在C++中有以下函数代码

bool SolveSudoku(int grid[N][N])
{
int row, col;
if (!FindUnassignedLocation(grid, row, col))
   return true;
for (int num = 1; num <= 9; num++)
{
    if (isSafe(grid, row, col, num))
    {
         grid[row][col] = num;
         if (SolveSudoku(grid))
            return true;
         grid[row][col] = UNASSIGNED;
    }
}
return false;
}

我在这里面临的问题是,在if语句中,我需要首先执行一个操作,然后返回一个布尔值。在同一个if语句中使用不同的返回值时,Ocaml并没有那个么大的帮助。

看看OCaml版数独的源代码:

https://github.com/VictorNicollet/99-Problems-OCaml/blob/master/91-99/p97.ml