我正試圖在F#中使用元組列表實現一棵樹。
[a]
其中a
= (string, [a])
每個節點都有自己的孩子和葉子節點的列表將(name, [])
F中的樹表示法#
我希望能夠通過遞歸列表這樣的每一層迭代。
a
b e
c d f g
然而,它們並不總是二叉樹。
let t2 = [("a", [("b", [("c", []), ("d", [])]), ("e", [("f", []), ("g", [])])])]
let rec checkstuff tple =
match tple with
| (_, []) -> true
| (node, children) ->
List.fold (||) false (List.map checkstuff children)
我得到:
類型不匹配。統一
''a'
和''b * 'a list'
當期待
('a * 'b list) list
但給予
'b list
產生的類型將是無限的有沒有一種方法可以讓我做這樣的事情還是不支持這樣的元組遞歸列表?