syntax - 它适用于太多的论点;也许你忘记了一个`;'
问题描述
我正在尝试编写一个计算列表大小的代码。
这是我所做的:
let rec l = function
| [] -> 0
| t::q -> 1 + l q
print_int(l ([1;2;3;4]))
问题是它在说我:
It is applied to too many arguments; maybe you forgot a `;'.
当我将双分号;;
放在它的定义末尾时l
效果很好,但是我读过;;
如果您不在 REPL 中编码,那根本没有用,所以在这里我不明白为什么它会给我这个错误.
解决方案
以下
print_int(l [1;2;3;4])
是顶级表达式。这样的表达式需要在前面加上;;
:
;; print_int(l [1;2;3;4])
另一种选择是使这个顶级表达式与
let () = print_int(l [1;2;3;4])
推荐阅读
- javascript - 自动垂直滚动,用鼠标中键垂直滚动时很好,但用手机触摸滚动时就不行了
- c# - 当文件很小/空白时保存文件很好,但当文件较大时表示访问被拒绝
- javascript - 挂钩函数构造函数 (JavaScript)
- r - 当行超过某些数字时,R apply 无法获得多个分钟
- javascript - 在 Vue.js 中从 DOM 中删除组件
- python - Pythonic通过str列表对对象列表进行分组的方法
- python - 如何让 mov 功能正常工作
- sql - SQL 显示不等于的记录
- javascript - 无法将用户上传的大文本文件从 Google Scripts Web App(JS 模块)传递到代码模块
- java - 如何使用递归将字符串中的字符大写?