首页 > 解决方案 > 如何修复 OCaml 中的语法错误 - 可能与“in”关键字有关?

问题描述

我对 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;; 

标签: ocaml

解决方案


你肯定有一些问题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是一个返回值的表达式。


推荐阅读