ocaml - OCaml 中的类型 FI 和 UNKNOWN 是什么?
问题描述
我是 OCaml 的新手。我在 MacOS 上安装了带有最新自制软件的 utop(版本 2.6.0),安装了带有opam install core base
.
这是我的.ocamlinit
:
#use "topfind";;
#thread;;
#require "core.top";;
open Base;;
open Core;;
我遇到了一个类型的错误FI
:
utop # FI;;
Line 1, characters 0-2:
Error: The constructor FI expects 3 argument(s),
but is applied here to 0 argument(s)
FI
OCaml 中的类型是什么?
这是 TAPL 中引入的类型(info
https://www.cis.upenn.edu/~bcpierce/tapl/ ):,type info = FI of string * int * int | UNKNOWN
UNKNOWN
OCaml 中的类型是什么?
解决方案
正如所有评论者告诉你的那样,StackOverflow 不是一个通过提问来学习新语言的好地方。通过阅读有关 OCaml 的教程(例如在OCaml 学习页面)开始,您将更有效率。
要在这里回答您的问题,这些标识符 (FI
或UNKNOWN
) 都不是特别“在 OCaml 中”。它们只是可以定义为许多可能事物的大写标识符。在您的情况下,它们由您引用的类型定义定义:
type info = FI of string * int * int | UNKNOWN
这定义了名称info
、FI
和UNKNOWN
。后两者是名为 的新类型的“常量” info
。第一个常量(实际上称为值构造函数)FI
是一种将字符串和两个整数收集到带有标签的单元中的方法FI
。第二个只是一个简单的值,不收集任何数据。它在某种程度上类似于NULL
其他语言,因为它表示没有有趣的数据。
推荐阅读
- swift - 如何在 swift 中使用 @resultbuilder 使用 UICollectionView?
- fpga - 如何将 inout 数据端口连接到多个 IO
- linux - uWSGI vassal 没有以正确的权限生成
- c# - 通过使用 2D 数组,创建一个程序,该程序将接受 10 个名称及其 GWA,并根据最高 GWA 对其进行排序
- java - Android Studio 位置权限被拒绝
- python - 是否可以为此编写一个 lambda 函数?
- angular - 使用 ngModel 从数组传递对象 - Angular
- python - M1 上的张量流
- for-loop - 连续 24 个字母的排列
- asp.net-core - 检查 Blazor 类库中的用户代理