Ocaml:再次调用递归函数

Eri*_*ric 2 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")
>    ;;
Run Code Online (Sandbox Code Playgroud)

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

任何帮助,将不胜感激.

ako*_*ski 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
  )
Run Code Online (Sandbox Code Playgroud)