cons.h
上传用户:nthfjj
上传日期:2007-01-07
资源大小:37k
文件大小:1k
源码类别:

系统编程

开发平台:

Unix_Linux

  1. struct SEXPR {
  2.     struct SEXPR * sexpr_car;
  3.     struct SEXPR * sexpr_cdr;
  4. };
  5. typedef struct SEXPR * sexpr;
  6. extern sexpr cons();
  7. # define nil ((sexpr) 0)
  8. # define car(x) ((x) -> sexpr_car)
  9. # define cdr(x) ((x) -> sexpr_cdr)
  10. # define null(x) ((x) == nil)
  11. # define head(x) car(x)
  12. # define tail(x) cdr(x)
  13. # define caar(x) car(car(x))
  14. # define cadr(x) car(cdr(x))
  15. # define cddr(x) cdr(cdr(x))
  16. # define cdar(x) cdr(car(x))
  17. # define caddr(x) car(cdr(cdr(x)))
  18. # define first(x) car(x)
  19. # define second(x) cadr(x)
  20. # define third(x) caddr(x)
  21. # define list1(x) cons(x, nil)
  22. # define list2(x,y) cons(x, cons(y, nil))
  23. # define list3(x,y,z) cons(x, cons(y, cons(z, nil)))