无论我读什么教程/手册,OCaml 类型总是让我感到困惑。我需要定义一个类型,比如说测试,它包含以下形式:
具有以下形式之一的类型 ('a, 'b) 测试:
空,T t,N n,Seq [x1...xn]
我知道如何做前 3 个,但我完全不知道如何定义最后一个形式。这就是我所拥有的:
type ('nonterm, 'term) test =
| Empty
| T of 'term
| N of 'nonterm
| ????
对于 seq,我需要匹配子表达式 x1 到 xn 的实例。如果 x = 0,则为空。有人可以帮我吗?提前致谢。
的子表达式是Seq
还测试?如果是这样,您可以使用列表:
type ('nonterm, 'term) test =
| Empty
| T of 'term
| N of 'nonterm
| Seq of ('nonterm, 'term) test list
当然,列表可以为空。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)