% Table * % % module % rest list_rest(_l,_b,_upvals):-_upvals=[],(_l = [_|_b]). % first list_first(_l,_a,_upvals):-_upvals=[],(_l = [_a|_]). % unique list_unique(_l,_l2,_dup,_upvals):-_upvals=[_unique_],(call_cl(_unique_,[_l2,_l,[]])). % unique_ list_unique_(_l,_l2,_dup,_upvals):-_upvals=[],((((true),(_l = [],_l2 = _l);_l = '[|]'(_e,_tail),(((get_(_list,"has",T3),_T2 = T3,call_cl(_T2,[_dup,_e])),(_l2 = _tail2,call(list_unique_(_tail,_tail2,_dup),_upvals));_dup1 = '[|]'(_e,_dup),_l2 = '[|]'(_e,_tail2),call(list_unique_(_tail,_tail2,_dup1),_upvals)))))). % iterate list_iterate(_p,_n,_x,_y,_upvals):-_upvals=[],((if_(_n = 0.0,(_y = _x),(call_cl(_p,[_x,_x2]),{X1 = _n-1.0},call(list_iterate(_p,X1,_x2,_y),_upvals))))). % map list_map(_l,_p,_l2,_upvals):-_upvals=[],((if_(_l = [],(_l2 = []),(_l = [_head|_tail],_l2 = [_head2|_tail2],call_cl(_p,[_head,_head2]),call(list_map(_tail,_p,_tail2),_upvals))))). % every list_every(_l,_p,_upvals):-_upvals=[],((if_(_l = [],(_l2 = []),(_l = [_head|_tail],call_cl(_p,[_head]),call(list_every(_tail,_p),_upvals))))). % join3 list_join3(_l,_sep,_s2,_upvals):-_upvals=[_join2],((if_(_l = '[|]'(_s,_tail),(call_cl(_join2,[_tail,_sep,_s,_s2])),(_s2 = "",_l = [])))). % join2 list_join2(_l,_sep,_s,_s2,_upvals):-_upvals=[],((if_(_l = [_b|_tail],(_s1 = _s+_sep+_b,call(list_join2(_tail,_sep,_s1,_s2),_upvals)),(_l = [],_s = _s2)))). % fold list_fold(_l,_pred,_s,_result,_upvals):-_upvals=[],((if_(_l = [_b|_tail],(call_cl(_pred,[_s,_b,_c]),call(list_fold(_tail,_pred,_c,_result),_upvals)),(_l = [],_result = _s)))). % join5 list_join5(_l,_sep,_s,_upvals):-_upvals=[_join],((if_(_l = [_a|[]],(_s = _a),(if_(_l = [_s1|_tail],(_s = _s1+_sep+_s2,call_cl(_join,[_tail,_sep,_s2])),(_l = [],_s = "")))))). % join list_join(_l,_sep,_s,_upvals):-_upvals=[],((if_(_l = [_a|[]],(_s = _a),(if_(_l = [_s1|_tail],(_s = _s1+_sep+_s2,call(list_join(_tail,_sep,_s2),_upvals)),(_l = [],_s = "")))))). % each list_each(_l,_p,_l2,_upvals):-_upvals=[_eachIndex],(call_cl(_eachIndex,[_l,_p,0.0,_l2])). % eachIndex list_eachIndex(_l,_p,_i,_l2,_upvals):-_upvals=[],((if_(_l = [],(_l2 = []),(_l = [_head|_tail],_l2 = [_head2|_tail2],call_cl(_p,[_i,_head,_head2]),call(list_eachIndex(_tail,_p,_i+1.0,_tail2),_upvals))))). % reverse list_reverse(_l,_l2,_upvals):-_upvals=[_concat],((if_(_l = [_a|_tail],(call(list_reverse(_tail,_ltemp),_upvals),call_cl(_concat,[_ltemp,[_a|[]],_l2])),(_l = [],_l2 = [])))). % slice list_slice(_l,_i,_j,_l2,_upvals):-_upvals=[],(slice(_l,_i,_j,_l2)). % last list_last(_l,_a,_upvals):-_upvals=[_get,_size],(call_cl(_size,[_l,_T1]),call_cl(_get,[_l,_T1-1.0,_a])). % findOnce list_findOnce(_l,_e,_i,_upvals):-_upvals=[],(_l = '[|]'(_x,_tail),(if_(_e = _x,(_i = 0.0,!),(call(list_findOnce(_tail,_e,_j),_upvals),{_i = _j+1.0},!)))). % find list_find(_l,_e,_i,_upvals):-_upvals=[],(def(_e),_l = '[|]'(_e1,_tail),(if_(_e = _e1,(_i = 0.0),(call(list_find(_tail,_e,_j),_upvals),{_i = _j+1.0})))). % pop list_pop(_l,_l2,_upvals):-_upvals=[],(_l = '[|]'(_x,_tail),_l2 = _tail). % push list_push(_l,_x,_l2,_upvals):-_upvals=[],(_l2 = '[|]'(_x,_l)). % concat list_concat(_l,_l2,_l3,_upvals):-_upvals=[],(append(_l,_l2,_l3)). % has list_has(_l,_e,_upvals):-_upvals=[],((if_(_l = [_e|_],(true),(_l = '[|]'(_,_tail),call(list_has(_tail,_e),_upvals))))). % has2 list_has2(_l,_e,_upvals):-_upvals=[],((if_(_l = [_e|_],(writeln_('[|]'("e",'[|]'(_e,[]))),true),(writeln_(_l),_l = [_|_tail],call(list_has2(_tail,_e),_upvals))))). % remove list_remove(_l,_n,_l2,_upvals):-_upvals=[],((((true),(_l = [],_l2 = _l);_l = '[|]'(_e,_tail),(if_(_e = _n,(_l2 = _tail),(_l2 = '[|]'(_e,_l3),call(list_remove(_tail,_n,_l3),_upvals))))))). % removeIndex list_removeIndex(_l,_i,_l2,_upvals):-_upvals=[_remove2],(type(_i,"int"),call_cl(_remove2,[_l,0.0,_i,_l2])). % remove2 list_remove2(_l,_i,_n,_l2,_upvals):-_upvals=[],((((true),(_l = [],_l2 = _l);_l = '[|]'(_e1,_tail),(if_(_i = _n,(_l2 = _tail),(_i2 = _i+1.0,_l2 = '[|]'(_e1,_l3),call(list_remove2(_tail,_i2,_n,_l3),_upvals))))))). % removeAll list_removeAll(_l,_p,_l2,_upvals):-_upvals=[],((((_l = []),(_l2 = []);_l = [_head|_tail],(((call_cl(_p,[_head])),(call(list_removeAll(_tail,_p,_l2),_upvals));_l2 = [_head|_tail2],call(list_removeAll(_tail,_p,_tail2),_upvals)))))). % filter list_filter(_l,_p,_l2,_upvals):-_upvals=[],((((_l = []),(_l2 = []);_l = [_head|_tail],(((call_cl(_p,[_head])),(_l2 = [_head|_tail2],call(list_filter(_tail,_p,_tail2),_upvals));call(list_filter(_tail,_p,_l2),_upvals)))))). % size list_size(_l,_n,_upvals):-_upvals=[],((if_(_l = [],(_n = 0.0),(_l = [_|_tail],call(list_size(_tail,_j),_upvals),{_n = _j+1.0})))). % get list_get(_L,_N,_Element,_upvals):-_upvals=[],(nth0(_N,_L,_Element)). % main list(X):-_get = clos([],list_get),creq("string",_string),_size = clos([],list_size),_filter = clos([],list_filter),_removeAll = clos([],list_removeAll),_remove2 = clos([],list_remove2),_removeIndex = clos([_remove2],list_removeIndex),_remove = clos([],list_remove),_has2 = clos([],list_has2),_has = clos([],list_has),_concat = clos([],list_concat),_push = clos([],list_push),_pop = clos([],list_pop),_find = clos([],list_find),_findOnce = clos([],list_findOnce),_last = clos([_get,_size],list_last),_slice = clos([],list_slice),_reverse = clos([_concat],list_reverse),_eachIndex = clos([],list_eachIndex),_each = clos([_eachIndex],list_each),_join = clos([],list_join),_join5 = clos([_join],list_join5),_fold = clos([],list_fold),_join2 = clos([],list_join2),_join3 = clos([_join2],list_join3),_every = clos([],list_every),_map = clos([],list_map),_iterate = clos([],list_iterate),_unique_ = clos([],list_unique_),_unique = clos([_unique_],list_unique),_first = clos([],list_first),_rest = clos([],list_rest),new(T4),set_(T4,"find",_find,T6),set_(T6,"findOnce",_findOnce,T7),set_(T7,"size",_size,T8),set_(T8,"length",_size,T9),set_(T9,"filter",_filter,T10),set_(T10,"removeIndex",_removeIndex,T11),set_(T11,"remove",_remove,T12),set_(T12,"push",_push,T13),set_(T13,"pop",_pop,T14),set_(T14,"has",_has,T15),set_(T15,"has2",_has2,T16),set_(T16,"at",_get,T17),set_(T17,"concat",_concat,T18),set_(T18,"every",_every,T19),set_(T19,"forall",_every,T20),set_(T20,"map",_map,T21),set_(T21,"removeAll",_removeAll,T22),set_(T22,"join",_join3,T23),set_(T23,"fold",_fold,T24),set_(T24,"each",_each,T25),set_(T25,"eachIndex",_eachIndex,T26),set_(T26,"iterate",_iterate,T27),set_(T27,"reverse",_reverse,T28),set_(T28,"first",_first,T29),set_(T29,"last",_last,T5),_t = T5,X=_t.