Types 如何在ocaml中为该类型的列表定义新类型和类型?
我是ocaml新手,已经定义了一个类型Types 如何在ocaml中为该类型的列表定义新类型和类型?,types,ocaml,reason,Types,Ocaml,Reason,我是ocaml新手,已经定义了一个类型 type options = | Rock | Paper | Scissors 我还想定义一个选项列表。我就是这样尝试的 type opts = list options; 当我尝试将选项的文本列表传递给函数时,Merlin给了我这个错误 有什么想法吗?顺便说一句,我使用的是ReasonML,虽然我认为这并不重要 下面是转换回ocaml的整个函数 let compGuess () = let rec aux opts k =
type options =
| Rock
| Paper
| Scissors
我还想定义一个选项列表。我就是这样尝试的
type opts = list options;
当我尝试将选项的文本列表传递给函数时,Merlin给了我这个错误
有什么想法吗?顺便说一句,我使用的是ReasonML,虽然我认为这并不重要
下面是转换回ocaml的整个函数
let compGuess () =
let rec aux opts k =
match opts with
| [] -> [Rock]
| x::[] -> x
| h::t -> (match k = 1 with | true -> h | false -> aux t (k - 1)) in
aux [Rock; Paper; Scissors] ((Random.int 3) + 1)
您的类型问题如下所示。匹配的第一个选项返回类型为
opts
的内容。因此,第二个备选方案还必须返回类型为opts
的内容。这意味着输入的头x
,属于opts
类型。这意味着输入是一个选项列表。换句话说,您的函数应该包含一个选项列表。但是您正在传递一个选项列表。您的类型问题如下所示。匹配的第一个选项返回类型为opts
的内容。因此,第二个备选方案还必须返回类型为opts
的内容。这意味着输入的头x
,属于opts
类型。这意味着输入是一个选项列表。换句话说,您的函数应该包含一个选项列表。但是您正在传递一个选项列表。谢谢,这为我解答了所有问题!谢谢,这为我解答了一切!