示例#1
0
 def flatten(self) -> LazyList[Any]:
     return LazyLists.cons(self)
示例#2
0
class StrLeaf(LeafNode[str], StrNode[None]):
    pass


class StrListNode(ListNode[str], StrNode[LazyList[Node[str, Any]]]):
    pass


class StrMapNode(MapNode[str], StrNode[Map[str, Node[str, Any]]]):
    pass


tree = StrListNode(
    LazyLists.cons(
        StrLeaf("leaf1"),
        StrListNode(LazyLists.cons(StrLeaf("sub1"), StrLeaf("sub2")))))
mtree = StrMapNode(Map(first=tree, second=StrLeaf('leaf2')))

show_target = '''[]
 leaf1
 []
  sub1
  sub2'''


class TreeSpec(Spec):
    def sub(self) -> None:
        t1 = tree.lift(1)
        t1.head.data.data.should.equal('sub1')
示例#3
0
 def _strings(self) -> LazyList[Data]:
     return LazyLists.cons(self.data)
示例#4
0
 def flat_map(self) -> None:
     l = LazyLists.cons(LazyList((1, 2, 3)), LazyList((4, 5, 6)),
                        LazyList((1, 2, 3)))
     l.lift(1)
     l.flat_map(I).drain.should.equal(List(1, 2, 3, 4, 5, 6, 1, 2, 3))