首页 > 解决方案 > 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)

FIOCaml 中的类型是什么?

这是 TAPL 中引入的类型(infohttps://www.cis.upenn.edu/~bcpierce/tapl/ :,type info = FI of string * int * int | UNKNOWN

UNKNOWNOCaml 中的类型是什么?

标签: ocamlopamutop

解决方案


正如所有评论者告诉你的那样,StackOverflow 不是一个通过提问来学习新语言的好地方。通过阅读有关 OCaml 的教程(例如在OCaml 学习页面)开始,您将更有效率。

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

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

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


推荐阅读