Saya mengikuti latihan berikut dalam Yayasan Perangkat Lunak :
(** **** 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 *)
[] *)
Semua jawaban yang saya lihat di Internet mengatakan bahwa jawabannya adalah 2, dan unsur-unsurnya adalah x dan y. Jika itu masalahnya, maka bagi saya tidak jelas apa yang dimaksud dengan elemen . Tentunya ada dua konstruktor, tetapi tidak mungkin untuk benar-benar membuat nilai tipe baz .
Tidak mungkin membuat nilai tipe bazkarena xmemiliki tipe baz -> baz. ymemiliki tipe baz -> bool -> baz. Untuk mendapatkan nilai tipe, bazkita harus meneruskan nilai tipe bazke salah satu xatau y. Kami tidak bisa mendapatkan nilai tipe baztanpa memiliki nilai tipe baz.
Sejauh ini saya telah menafsirkan elemen dengan nilai rata-rata . Jadi (cons nat 1 nil)dan (cons nat 1 (cons nat 2 nil))keduanya akan menjadi elemen tipe list natdan akan ada jumlah elemen tipe yang tak terbatas list nat. Akan ada dua elemen tipe bool, yaitu truedan false. Di bawah penafsiran ini, saya berpendapat bahwa tidak ada unsur elemen baz.
Apakah saya benar, atau bisakah seseorang menjelaskan apa yang saya salah pahami?
baz.
baz.