/* File: lists.c * Author: Jim Mayfield */ #include #include typedef void *list_item_type; typedef struct list_tag { list_item_type data; struct list_tag *next; } list_struct; #include "lists.h" list_type cons(list_item_type value, list_type list) { list_type result; result = malloc(sizeof(list_struct)); assert(result != NULL); result->data = value; result->next = list; return(result); } list_item_type first(list_type list) { assert(list != NULL); return(list->data); } list_type rest(list_type list) { assert(list != NULL); return(list->next); } BOOL empty_list(list_type list) { return(list == NULL); }