如何修复 OCaml 中的语法错误 - 可能与 'in' 关键字有关?

How to fix syntax error in OCaml - could be to do with 'in' keyword?

我是 ocaml 的新手,想找出代码中语法错误的位置,但找不到它,会不会是我使用的 'in' 关键字不正确?

let dayFromDate year month day = 
        if ( (month = 1) || (month = 2) )
        then let m = month + 12 in
        else let m = month
        
        let k = year mod 100 in
        let j = year / 100 in 
        let q = day in
        
        let h = ( q + ( ( 13 * (m + 1) ) / 5) + k + (k / 4) + 5 - j ) 
        
        h;; 

你肯定有一些问题let ... in ...

我想你的意思是:

let dayFromDate year month day = 
  let m = if month = 1 || month = 2 then month + 12 else month in
  let k = year mod 100 in
  let j = year / 100 in 
  let q = day in
  let h = q + ((13 * (m + 1)) / 5) + k + (k / 4) + 5 - j in
  h;; 

还请记住,if/else 是一个 returns 值的表达式。