% 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=[],(((_n = 0.0,_y = _x);(dif(_n,0.0),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=[],(((_l = [],_l2 = []);(dif(_l,[]),_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=[],(((_l = [],_l2 = []);(dif(_l,[]),_l = [_head|_tail],call_cl(_p,[_head]),call(list_every(_tail,_p),_upvals)))). % join3 list_join3(_l,_sep,_s2,_upvals):-_upvals=[_join2],(((_l = '[|]'(_s,_tail),call_cl(_join2,[_tail,_sep,_s,_s2]));(dif(_l,'[|]'(_s,_tail)),_s2 = "",_l = []))). % join2 list_join2(_l,_sep,_s,_s2,_upvals):-_upvals=[],(((_l = [_b|_tail],_s1 = _s+_sep+_b,call(list_join2(_tail,_sep,_s1,_s2),_upvals));(dif(_l,[_b|_tail]),_l = [],_s = _s2))). % fold list_fold(_l,_pred,_s,_result,_upvals):-_upvals=[],(((_l = [_b|_tail],call_cl(_pred,[_s,_b,_c]),call(list_fold(_tail,_pred,_c,_result),_upvals));(dif(_l,[_b|_tail]),_l = [],_result = _s))). % join5 list_join5(_l,_sep,_s,_upvals):-_upvals=[_join],(((_l = [_a|[]],_s = _a);(dif(_l,[_a|[]]),(_l = [_s1|_tail],_s = _s1+_sep+_s2,call_cl(_join,[_tail,_sep,_s2]));(dif(_l,[_s1|_tail]),_l = [],_s = "")))). % join list_join(_l,_sep,_s,_upvals):-_upvals=[],(((_l = [_a|[]],_s = _a);(dif(_l,[_a|[]]),(_l = [_s1|_tail],_s = _s1+_sep+_s2,call(list_join(_tail,_sep,_s2),_upvals));(dif(_l,[_s1|_tail]),_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=[],(((_l = [],_l2 = []);(dif(_l,[]),_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],(((_l = [_a|_tail],call(list_reverse(_tail,_ltemp),_upvals),call_cl(_concat,[_ltemp,[_a|[]],_l2]));(dif(_l,[_a|_tail]),_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],((_e = _x,_i = 0.0,!);(dif(_e,_x),call(list_findOnce(_tail,_e,_j),_upvals),{_i = _j+1.0},!))). % find list_find(_l,_e,_i,_upvals):-_upvals=[],(def(_e),_l = [_e1|_tail],((_e = _e1,_i = 0.0);(dif(_e,_e1),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=[],(((_l = [_e|_],true);(dif(_l,[_e|_]),_l = [_|_tail],call(list_has(_tail,_e),_upvals)))). % has2 list_has2(_l,_e,_upvals):-_upvals=[],(((_l = [_e|_],writeln_('[|]'("e",'[|]'(_e,[]))),true);(dif(_l,[_e|_]),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),((_e = _n,_l2 = _tail);(dif(_e,_n),_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),((_i = _n,_l2 = _tail);(dif(_i,_n),_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=[],(((_l = [],_n = 0.0);(dif(_l,[]),_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.