我正在Software Foundations中进行以下练习:
(** **** Exercise: 2 stars (baz_num_elts) *)
(** Consider the following inductive definition: *)
Inductive baz : Type :=
| x : baz -> baz
| y : baz -> bool -> baz.
(** How _many_ elements does the type [baz] have?
(* FILL IN HERE *)
[] *)
我在互联网上看到的所有答案都说答案是2,元素是x和y。如果是这种情况,那么对我来说,不清楚element是什么意思。当然有两个构造函数,但是实际上无法创建类型baz的值。
baz由于x具有type,因此无法创建type的值baz -> baz。y具有类型baz -> bool -> baz。为了获得type的值,baz我们需要将type的值传递baz给x或y。在没有type值的baz情况下,我们无法获得type 的值baz。
到目前为止,我已经解释元素,以平均数值。因此(cons nat 1 nil),(cons nat 1 (cons nat 2 nil))并且都将是type的元素,list nat并且将有无限多个type的元素list nat。将有两个type元素bool,分别是true和false。根据这种解释,我认为type的元素为零baz。
我是正确的,还是有人可以解释我的误解?
真好 那就是我以为你在想的。谢谢,Twernmilt。对于它的价值,我的反应与您相同:我也希望答案是type的元素为零
—
DW
baz。
baz。