functional-programming - 在 OCaml 中,为什么我们有 '+.'、'-.' 但我们只使用 '<' 而不是 '<.'?
问题描述
标题说了算。
在 OCaml 中,你可以做 1 + 1 但不能做 1.0 + 1.0
我有点明白了,'+' 是一个接受两个 int 参数的函数。
但是为什么我们有适用于 float 和 int 的 '>' 呢?
这是不一致吗?
解决方案
好吧,请注意,'>' 适用于任何一种类型的两个值。这不仅仅是为了数字。
但是,是的,多态比较运算符是 OCaml 中的一种特殊情况。从理论上讲,定义这样的函数是不可能的,因为没有先验的方法来“查看”具有任意类型的值。然而,这些功能仍然存在,因为它们非常有用。
它们也有些危险,许多 OCaml 专家建议对它们非常小心。
这里有一些关于限制的讨论:比较是否适用于所有类型?
推荐阅读
- c++ - 用于一次性查找但多次遍历和访问的容器的 C++ 有效方法
- reactjs - 如何使用 Express 从 React 中的公共文件夹下载文件
- node.js - 是否可以在 npm 注册表 (fe npmjs.org) 中找出所有现有 npm 模块的总大小?
- azure-ad-b2c - Azure B2C 自定义策略中的多个自定义标头和路径变量
- google-chrome - 使用服务器端设置 cookie,服务器删除它们,仍在后续请求中
- r - JSON 到 CSV(仅从 JSON 文件中获取第一行)
- angular - 在 Ionic 中选择性别之前,如何禁用该按钮?
- filemaker - 在 FileMaker Pro 19 中的现有记录之间添加新关系
- svg - Dagre svg 水平滚动条
- sparql - 查找应该是实例 sparql 的类;查找恰好有 1 个子类的类