相关疑难解决方法(0)

F#中的树表示

我正在尝试使用元组列表在F#中实现一个树.
[a]where a= (string, [a])
每个节点都有一个子节点列表和叶子节点(name, [])

我希望能够像这样以递归方式遍历列表的每个级别.

    a
 b     e
c d   f g
Run Code Online (Sandbox Code Playgroud)

但它们并不总是二叉树.

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)
Run Code Online (Sandbox Code Playgroud)

我明白了:

类型不匹配.期待一个
    ('a * 'b list) list
给定的一个,但
    'b list
统一时产生的类型将是无限的''a',并''b * 'a list'

有没有办法可以做这样的事情,还是不支持这样的元组的递归列表?

tree f#

9
推荐指数
2
解决办法
4994
查看次数

标签 统计

f# ×1

tree ×1