如何使用for

时间:2016-05-12 21:39:36

标签: ocaml

你好我想实现一个使用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是错的,有人可以告诉我为什么吗?

1 个答案:

答案 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开始。