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)

OCaml 中的 FI 类型是什么?

以下是 TAPL(https://www.cis.upenn.edu/~bcpierce/tapl/) 中引入的类型 infotype info = FI of string * int * int | UNKNowN,

OCaml 中的 UNKNowN 类型是什么?

解决方法

正如所有评论者都告诉你的那样,StackOverflow 不是通过提问来学习一门新语言的好地方。通过阅读有关 OCaml 的教程开始,您会更有效率,例如 the OCaml Learning page.

在这里回答您的问题,这些标识符(FIUNKNOWN)在“OCaml”中都没有特别的意义。它们只是可以定义为许多可能事物的大写标识符。在您的情况下,它们由您引用的类型定义定义:

type info = FI of string * int * int | UNKNOWN

这定义了名称 infoFIUNKNOWN。后两个是名为 info 的新类型的“常量”。第一个常量(实际上称为值构造函数)FI 是一种将字符串和两个整数收集到带有标记 FI 的单元中的方法。第二个只是一个不收集任何数据的简单值。它在某种程度上类似于其他语言中的 NULL,因为它表示没有有趣的数据。