% Null % % module % 2 tree_2(_f,_upvals):-_upvals=[_write,_write_,_write],(call_cl(_write,["{"]),call_cl(_write_,[_f]),call_cl(_write,["}"])). % write_ tree_write_(_f,_upvals):-_upvals=[_write,_write,_write,_write],(((_f = fc_Tree(_color,_a,_y,_b))->(call(tree_write_(_a),_upvals),call(tree_write_(_y),_upvals),call(tree_write_(_b),_upvals));((_f = fc([],"E"))->(true);(_f = fc_Pair(_a,_b),call_cl(_write,[_a]),call_cl(_write,["="]),call_cl(_write,[_b]),call_cl(_write,[", "]))))). % len tree_len(_l,_i,_upvals):-_upvals=[],((if_(_l = [],(_i = 0.0),((_l = '[|]'(_a,_l2)),({_i = _i1+1.0},call(tree_len(_l2,_i1),_upvals)))))). % has tree_has(_f,_x,_upvals):-_upvals=[],((if_(_f = fc_Pair(_,_),(_x = _f),((_f = fc_Tree(_color,_a,_y,_b)),(call(tree_has(_a,_i1),_upvals),call(tree_has(_y,_i3),_upvals),call(tree_has(_b,_i2),_upvals),_i = _i1+_i2+_i3))))). % length tree_length(_f,_i,_upvals):-_upvals=[],((if_(_f = fc([],"E"),(_i = 0.0,true),(if_(_f = fc_Pair(_,_),(_i = 1.0),((_f = fc_Tree(_color,_a,_y,_b)),(call(tree_length(_a,_i1),_upvals),call(tree_length(_y,_i3),_upvals),call(tree_length(_b,_i2),_upvals),{_i = _i1+_i2+_i3}))))))). % get tree_get(_f,_x,_y,_upvals):-_upvals=[_member],(call_cl(_member,[_f,fc_Pair(_x,_y)])). % member tree_member(_f,_x,_upvals):-_upvals=[_lt],(_f = fc_Tree(_color,_a,_y,_b),call_cl(_lt,[_x,_y,_s]),writeln_('[|]'(_s,'[|]'(_f,[]))),(((_s = "<"),(writeln_('[|]'(_s,'[|]'(_a,[]))),call(tree_member(_a,_x),_upvals));((_s = "="),(writeln_('[|]'(_s,'[|]'(_x,'[|]'(_y,[])))),_x = _y,writeln_('[|]'(_s,'[|]'(_x,'[|]'(_y,[])))),true);writeln_('[|]'(_s,'[|]'(_b,[]))),call(tree_member(_b,_x),_upvals))))). % set tree_set(_f,_f2,_x,_y1,_upvals):-_upvals=[_ins],(call_cl(_ins,[_f,_f1,fc_Pair(_x,_y1)]),_f1 = fc_Tree(_,_a,_y,_b),_f2 = fc_Tree(fc([],"Black"),_a,_y,_b)). % ins tree_ins(_f,_f2,_x,_upvals):-_upvals=[_balance,_balance,_lt],((((true),(_f = fc([],"E"),_f2 = fc_Tree(fc([],"Red"),fc([],"E"),_x,fc([],"E")));_f = fc_Tree(_color,_a,_y,_b),call_cl(_lt,[_x,_y,_s]),(if_(_s = "<",(call(tree_ins(_a,_a2,_x),_upvals),call_cl(_balance,[fc_Tuple(_color,_a2,_y,_b),_f2])),(if_(_s = "=",(_f2 = fc_Tree(_color,_a,_x,_b)),(call(tree_ins(_b,_b2,_x),_upvals),call_cl(_balance,[fc_Tuple(_color,_a,_y,_b2),_f2]))))))))). % ins2 tree_ins2(_f,_f2,_x,_upvals):-_upvals=[_balance,_balance,_lt],((((true),(_f = fc([],"E"),_f2 = fc_Tree(fc([],"Red"),fc([],"E"),_x,fc([],"E")));_f = fc_Tree(_color,_a,_y,_b),call_cl(_lt,[_x,_y,_s]),(if_(_s = "<",(call(tree_ins2(_a,_a2,_x),_upvals),call_cl(_balance,[fc_Tuple(_color,_a2,_y,_b),_f2])),(if_(_s = "=",(writeln_('[|]'(_y,'[|]'(_x,[]))),_f2 = fc_Tree(_color,_a,_x,_b)),(call(tree_ins2(_b,_b2,_x),_upvals),call_cl(_balance,[fc_Tuple(_color,_a,_y,_b2),_f2]))))))))). % lt tree_lt(_x,_y,_s,_upvals):-_upvals=[],(_x = fc_Pair(_a,_v),_y = fc_Pair(_b,_v2),pure_comp(_a,_b,_s)). % balance tree_balance(_f,_f2,_upvals):-_upvals=[],((((true),(_f = fc_Tuple(fc([],"Black"),fc_Tree(fc([],"Red"),fc_Tree(fc([],"Red"),_a,_x,_b),_y,_c),_z,_d),_f2 = fc_Tree(fc([],"Red"),fc_Tree(fc([],"Black"),_a,_x,_b),_y,fc_Tree(fc([],"Black"),_c,_z,_d)));_f = fc_Tuple(_color,_a,_x,_b),_f2 = fc_Tree(_color,_a,_x,_b)))). % pause tree_pause(_upvals):-_upvals=[],(read(_x)). % main tree(X):-_pause = clos([],tree_pause),_balance = clos([],tree_balance),_lt = clos([],tree_lt),_ins2 = clos([_balance,_balance,_lt],tree_ins2),_ins = clos([_balance,_balance,_lt],tree_ins),_set = clos([_ins],tree_set),_member = clos([_lt],tree_member),_get = clos([_member],tree_get),_length = clos([],tree_length),_has = clos([],tree_has),_len = clos([],tree_len),creq("io",_io),get_(_io,"write",T1),_write = T1,_write_ = clos([_write,_write,_write,_write],tree_write_),new(T2),set_(T2,"_write",clos([_write,_write_,_write],tree_2),T4),set_(T4,"length",_length,T3),_t = T3,_f = fc([],"E"),call_cl(_set,[_f,_f2,1.0,3.0]),writeln_(_f),call_cl(_set,[_f2,_f3,3.0,"a"]),call_cl(_set,[_f3,_f4,4.0,"b"]),writeln_(_f4).