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 |
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|", "")) |
|||
⚫ | |||
prettyprint(fringe(a)) |
|||
prettyprint(fringe(b)) |
|||
prettyprint(fringe(c)) |
|||
prettyprint(fringe(x)) |
|||
prettyprint(fringe(y)) |
|||
⚫ | |||
⚫ | |||
⚫ | |||
prettyprint(getleaflist(a)) |
|||
⚫ | |||
⚫ | |||
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( |
println(equalsfringe(a, x) == false) |
||
println( |
println(equalsfringe(a, y) == false) |
||
println( |
println(equalsfringe(a, z) == false) |
||
</lang> |
</lang> |
||
{{output}} |
{{output}} |
||
<pre> |
<pre> |
||
[1, [2, [3, [4, [5, [6, [7, 8]]]]]]] |
|||
[1, [[2, 3], [4, [5, [[6, 7], 8]]]]] |
|||
{,1}[[[[1, 2], 3], 4], [5, [6, [7, 8]]]] |
|||
[1, [2, [3, [4, [5, [6, [7, [8, 9]]]]]]]] |
|||
[0, [2, [3, [4, [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] |