Same fringe: Difference between revisions

Content added Content deleted
mNo edit summary
Line 1,336: Line 1,336:


=={{header|Julia}}==
=={{header|Julia}}==

<lang Julia>
using Lazy
using Lazy

"""
"""
Input a tree for display as a fringed structure.
Input a tree for display as a fringed structure.
"""
"""
function fringe(tree)
function fringe(tree)
fringey(node::Pair) = [i for i in node]
fringey(node::Pair) = [fringey(i) for i in node]
fringey(leaf::Int) = leaf
fringey(leaf::Int) = leaf
fringey(tree)
fringey(tree)
end
end



"""
"""
equalsfringe() uses reduction to a 1D list via a lazy
equalsfringe() uses a reduction to 1D list via
getleaflist() for its "equality" of fringes
getleaflist() for its "equality" of fringes
"""
"""
Line 1,367: Line 1,367:
z = 1 => 2 => (4 => 3) => 5 => 6 => 7 => 8
z = 1 => 2 => (4 => 3) => 5 => 6 => 7 => 8


prettyprint(s) = println(replace("$s", r"\{,1\}|Any|Array\{T,1\}\swhere\sT|Array|", ""))
println(fringe(a))
println(fringe(b))
prettyprint(fringe(a))
println(fringe(c))
prettyprint(fringe(b))
println(fringe(x))
prettyprint(fringe(c))
println(fringe(y))
prettyprint(fringe(x))
println(fringe(z))
prettyprint(fringe(y))
prettyprint(fringe(z))
println(getleaflist(a))

println(getleaflist(b))
println(getleaflist(c))
prettyprint(getleaflist(a))
prettyprint(getleaflist(b))
prettyprint(getleaflist(c))


println(equalsfringe(a, a))
println(equalsfringe(a, a))
Line 1,381: Line 1,383:
println(equalsfringe(a, c))
println(equalsfringe(a, c))
println(equalsfringe(b, c))
println(equalsfringe(b, c))
println( ! equalsfringe(a, x))
println(equalsfringe(a, x) == false)
println( ! equalsfringe(a, y))
println(equalsfringe(a, y) == false)
println( ! equalsfringe(a, z))
println(equalsfringe(a, z) == false)
</lang>
</lang>
{{output}}
{{output}}
<pre>
<pre>
Any[1, 2=>(3=>(4=>(5=>(6=>(7=>8)))))]
[1, [2, [3, [4, [5, [6, [7, 8]]]]]]]
Any[1, (2=>3)=>(4=>(5=>((6=>7)=>8)))]
[1, [[2, 3], [4, [5, [[6, 7], 8]]]]]
Pair[((1=>2)=>3)=>4, 5=>(6=>(7=>8))]
{,1}[[[[1, 2], 3], 4], [5, [6, [7, 8]]]]
Any[1, 2=>(3=>(4=>(5=>(6=>(7=>(8=>9))))))]
[1, [2, [3, [4, [5, [6, [7, [8, 9]]]]]]]]
Any[0, 2=>(3=>(4=>(5=>(6=>(7=>8)))))]
[0, [2, [3, [4, [5, [6, [7, 8]]]]]]]
Any[1, 2=>((4=>3)=>(5=>(6=>(7=>8))))]
[1, [2, [[4, 3], [5, [6, [7, 8]]]]]]
[1, 2, 3, 4, 5, 6, 7, 8]
[1, 2, 3, 4, 5, 6, 7, 8]
[1, 2, 3, 4, 5, 6, 7, 8]
[1, 2, 3, 4, 5, 6, 7, 8]