#include <stdio.h>

struct intlist {int head; struct intlist * tail;};

struct intlist * cons (int h, struct intlist * t)
{
  struct intlist *l;
  l = (struct intlist *)malloc(sizeof(struct intlist));
  l->head = h;
  l->tail = t;
  return l;
}

void print(struct intlist *start)
{
  while (start)
  {
     printf("%d ",start->head);
     start=start->tail;
  }
  printf("\n");
}

main()
{
  struct intlist *odds, *primes;
  odds = cons (3,cons(5,cons(7,NULL)));
  primes = cons (2,odds);
  print(odds);
  print(primes);
}

