gpt4 book ai didi

ocaml - ocaml中GADT的异构列表

转载 作者:行者123 更新时间:2023-12-04 16:04:01 25 4
gpt4 key购买 nike

<分区>

我想使用 GADT 的规范示例创建一个异构表达式列表。

给定以下类型:

type _ value =
| Bool : bool -> bool value
| Int : int -> int value

type _ expr =
| Value : 'a value -> 'a expr
| If : bool expr * 'a expr * 'a expr -> 'a expr
| Eq : 'a expr * 'a expr -> bool expr
| Lt : int expr * int expr -> bool expr

我尝试创建以下列表:

 let a = [Value (Bool true); Value (Int 1);]

这似乎是不可能的,因为它返回以下错误消息:

Error: This expression has type int value
but an expression was expected of type bool value
Type int is not compatible with type bool

有办法吗?

我查看了 ocaml documentation for GADT要么无法找到,要么无法理解如何找到。

有人能给我指出一些东西来解释为什么你不能用 GADT 做你能用 ADT 做的一切吗?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com