diff --git a/REQUIRE b/REQUIRE index ea9cd5e7..dc772c4e 100644 --- a/REQUIRE +++ b/REQUIRE @@ -6,3 +6,4 @@ NNlib ForwardDiff Requires ZipFile +AbstractTrees diff --git a/src/batches/Batches.jl b/src/batches/Batches.jl index 066f4d1c..5fc3f862 100644 --- a/src/batches/Batches.jl +++ b/src/batches/Batches.jl @@ -3,5 +3,6 @@ module Batches import ..Flux include("batch.jl") +include("tree.jl") end diff --git a/src/batches/tree.jl b/src/batches/tree.jl new file mode 100644 index 00000000..29e59c52 --- /dev/null +++ b/src/batches/tree.jl @@ -0,0 +1,12 @@ +using AbstractTrees + +struct Tree{T} + value::T + children::Vector{Tree{T}} +end + +Tree(x::T, xs::Vector{Tree{T}} = Tree{T}[]) where T = Tree{T}(x, xs) +Tree(x::T, xs::Tree{T}...) where T = Tree{T}(x, [xs...]) + +AbstractTrees.children(t::Tree) = t.children +AbstractTrees.printnode(io::IO, t::Tree) = show(io, t.value)