127 #define NIL_LIST ((LIST)nullptr) 140 #define list_rest(l) ((l) ? (l)->next : NIL_LIST) 141 #define first_node(l) ((l) ? (l)->node : NIL_LIST) 151 #define copy_first(l1,l2) \ 152 (l2=push(l2, first_node(l1))) 162 for (; (l) != NIL_LIST; (l) = list_rest (l)) 172 #define iterate_list(x,l) \ 173 for ((x)=(l); (x)!=0; (x)=list_rest(x)) 182 #define JOIN_ON(list1,list2) \ 183 ((list1) = join ((list1), (list2))) 192 #define pop_off(list) \ 193 ((list) = pop (list)) 202 #define push_on(list,thing) \ 203 ((list) = push (list, (LIST) (thing))) 213 #define second_node(l) \ 214 first_node (list_rest (l)) 224 #define set_rest(l,cell)\ 236 first_node (list_rest (list_rest (l))) 254 int is_same(
void *item1,
void *item2);
LIST delete_d(LIST list, void *key, int_compare is_equal)
LIST push(LIST list, void *element)
int is_same(void *item1, void *item2)
LIST push_last(LIST list, void *item)
LIST search(LIST list, void *key, int_compare is_equal)
void(* void_dest)(void *)
void * nth_cell(LIST var_list, int item_num)
LIST reverse_d(LIST list)
int(* int_compare)(void *, void *)
void destroy_nodes(LIST list, void_dest destructor)
LIST join(LIST list1, LIST list2)
LIST s_adjoin(LIST var_list, void *variable, int_compare compare)
void insert(LIST list, void *node)