ocaml - 如何修复 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;;
解决方案
你肯定有一些问题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
是一个返回值的表达式。
推荐阅读
- python - 如何更改 matplotlib 颜色条的脊椎颜色?
- postgresql - 将包含特殊字符的密码用大括号括起来不起作用
- regex - 如何使用 ansible regex_replace 移动单词
- xml - 无法找到包含回车的 xpath 元素文本
- python - 如何在python中的对象列表中求和元素
- python - Plotly Express scatter_mapbox 不在 Dash 中呈现
- mongodb - 连接到主机时出错:无法连接到服务器:服务器选择错误:服务器选择超时当前拓扑:类型:单服务器
- c++ - 如何将数据包缓冲区解析为结构
- git - Git 使用树形哈希将先前的提交恢复为新的提交
- java - 在 Java 中,为什么我可以将 double 添加到 int 但不能将 double 分配给 int?