你好我想实现一个使用for的递归函数,并且这个函数再次用于该函数。 我有这个代码,有人能告诉我什么错了吗?
let rec mov m ini =
for i = 0 to nrf-1 do
if m.(ini).(i) == 1 then mov m i
else
m.(ini).(i)<- 0;
done;;
基本上我在矩阵中寻找我想要在矩阵中实现并再次搜索的东西。 但我的sintax是错的,有人可以告诉我为什么吗?
答案 0 :(得分:0)
运行代码时,utop会给我以下错误:
Error: Unbound value nrf
这是因为顶层不知道nrf
是什么(即你没有声明它)。
现在,我认为nrf应该是矩阵中的项目数,因此可能的解决方法是将其添加为函数参数,如下所示:
let rec mov m ini nrf=
for i = 0 to nrf-1 do
if m.(ini).(i) == 1 then mov m i
else
m.(ini).(i)<- 0;
done;;
然后一个示例调用将是move m 0 20
,其中先前声明的矩阵m有20个元素,搜索从0开始。