Merhaba, Stack Overflow'ta ilk kez gönderiyorum ve OCamlOCaml'deki özyinelem türleri?
'da bir tür oluşturmaya çalışırken bir sorunla karşılaşıyorum. Düğümler/yapraklar/etc içeren bir tür ağaç oluşturmaya çalışıyorum. Şimdiye kadar sahip olduğum şey bu.type ('a, 'b) tree = Empty | Leaf of 'b | Node of ('a * tree) | ....
Düğüm, adını ve başka bir ağacı bir tuple olarak içeren bir tür olması gerekiyordu. Ama bunu derlemeye çalıştığımda ağacın iki argüman gerektirdiğini söyledi. Ben de denedim:
ve hala hata alıyordum. Yanlış yaptığımı fark ettiğin bir şey var mı? Teşekkürler! Bir tür bildiriminde daha dikkat, Foo of bar * baz
ve Foo of (bar * baz)
aynı değildir:
type ('a, 'b) tree = Empty | Leaf of 'b | Node of ('a, 'b) tree * 'a * ('a, 'b) tree
PS olsa
Benim söz dizimi yanlıştı. Gerçekte Düğüm ('a * (' a, 'b) ağacı olmalıdır. – Brian
Doğru. Gazetedeki cevabı kabul etmek kibar olur, çünkü sorunuza cevap verir. Yapraklar ve iç düğümler için farklı tipler istediğinizden emin misiniz? –