87 #define add_on(l, x) l = push(l, first_node(x)) 88 #define next_one(l) l = list_rest(l) 146 if (!(*is_equal).Run(
first_node(list), key)) {
221 return strcmp((
char *)item1, (
char *)item2) == 0 ? 1 : 0;
232 if (list1 ==
NIL_LIST)
return (list2);
255 if (x++ == item_num)
return (var_list);
343 if (compare ==
nullptr) compare = (
int_compare)strcmp;
350 else if (result < 0) {
LIST reverse_d(LIST list)
#define set_rest(l, cell)
LIST push(LIST list, void *element)
void * nth_cell(LIST var_list, int item_num)
void(* void_dest)(void *)
void destroy_nodes(LIST list, void_dest destructor)
#define copy_first(l1, l2)
LIST s_adjoin(LIST var_list, void *variable, int_compare compare)
void insert(LIST list, void *node)
LIST join(LIST list1, LIST list2)
LIST push_last(LIST list, void *item)
LIST search(LIST list, void *key, int_compare is_equal)
int(* int_compare)(void *, void *)
int is_same(void *item1, void *item2)
LIST delete_d(LIST list, void *key, int_compare is_equal)