memory model
> '(1 2 3)
有一个1 2 3的链表 返回首地址
>(define seq '(1 2 3))
>(car seq)
1
>(cdr seq)//跳到指针域
2 3
>(cons '(1 2 3)'(4 5 6))
cons的memory model
指向数据域两次的list
((lambda(x)(cons x x))'(1 2))
泛型map
>(map car '((1 2)(3 4)(5 6 7)))
(1 3 5)
>(map + '(1 2)'(10 20)'(100 400))
(111 422)
(define (unary-map fn seq)
(if(null?seq)()
(cons(fn(car seq))
(unary-map fn
(cdr sq)))))
(define (mymap fn first-list . other-lists)
(if(null?first-list)'()
(cons (apply fn
(cons (car first-list)
(unary-map car other-lists)))