Ocaml:再次调用递归函数

时间:2011-04-04 22:04:52

标签: printing recursion ocaml

所以我有一个递归函数,它有2个整数,一个out_channel,基本上打印行(a,a + 1)。它应该这样做,直到a的值等于b。即如果a = 1,则b = 5

线(1,2) 线(2,3) ...线(4,5)

> let rec print_line (out:out_channel)(a:int)(b:int) : unit =
  if (a < b) then output_string out ("line("^string_of_int(a)^","^string_of_int(a+1)^")\n")
>    ;;

我想让它继续打印行(a,a + 1),直到a不再小于b。我究竟该怎么称呼它?

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:5)

所以:首先检查a >= b是否完成了()并且可以返回a。否则打印一行(你的方式),然后递归调用你的函数,增加let rec print_line (out:out_channel)(a:int)(b:int) : unit = if a >= b then () else ( output_string out ("line("^string_of_int(a)^","^string_of_int(a+1)^")\n"); print_line out (a + 1) b ) 。总而言之:

{{1}}