如何在OCaml中使let rec n read_int

如何在OCaml中使let rec n read_int,ocaml,Ocaml,该代码的目标是给定一个数字,实现多个操作,直到该数字等于42。我无法使let rec read\u int let n = read_int () let rec check n = if n < 42 then begin Printf.printf "bad luck" end else if n = 42 then begin Printf.printf "u win" end else if n mod 5 = 0 t

该代码的目标是给定一个数字,实现多个操作,直到该数字等于42。我无法使let rec read\u int

let n = read_int ()
let rec check n =
    if n < 42 then begin Printf.printf "bad luck" end
    else if n = 42 then begin Printf.printf "u win" end
    else if n mod 5 = 0 then begin check (n - 42) end
let n=read\u int()
让记录检查=
如果n<42,则开始打印F。打印F“坏运气”结束
否则,如果n=42,则开始打印。打印“u win”结束
否则,如果n mod 5=0,则开始检查(n-42)结束
  • 如果只有一个表达式,则不需要使用
    开始
    /
    结束

  • 如果每次调用
    时都要调用
    read_int
    ,请选中
    ,然后:

  • check
    不需要接受参数
    n
  • 您必须在
    check
  • 然而,如果您想使用一个最初从标准输入读取的值调用
    check
    ,然后通过递归调用
    check
    传递,那么您需要:

  • 纯函数(递归)函数
    检查
    接受参数
    n
  • 另一个函数
    check\u input
    读取标准输入并将值传递给
    check

可以更准确地说明您的问题所在吗?快速思考一下:您的功能
检查
并非详尽无遗。如果函数中的
n
参数为
43
,会发生什么情况?嗯,这不少于42。它不等于42。而且它不能被5整除。也许你真的不想发生什么事,但你应该明确地说出来。