Tree datastructures: Difference between revisions
m
→Functional
m (→Functional) |
m (→Functional) |
||
Line 471:
# forestFromNestLevels :: [(Int,
def forestFromNestLevels(tuples):
'''A list of trees derived from a list of
with integers giving their levels of indentation.
'''
def go(xs):
if xs:
(intIndent,
(firstTreeLines, rest) = span(
lambda x: intIndent < x[0]
)(xs[1:])
return [Node(
else:
return []
Line 516:
'Parse tree from outline text:\n',
forestJSON(forestA),
'\nNesting level list from tree:\n',
json.dumps(nestLevels, indent=2),
'\nTree rebuilt from nesting level list:\n',
forestJSON(forestB),
Line 564 ⟶ 566:
return [node['root'], [go(x) for x in node['nest']]]
return [go(x) for x in xs]
|