scheme中表只能操作头部带来的一个问题
摘要:
很多简单的算法,为了能够转成尾递归,不得不采取比较繁琐的计算过程,或者使用多遍的遍历过程。在scheme中,比如map的实现,按照定义的实现(define (map p l) (if (null? l) '() (cons (p (car l)) (map p (cdr l)))))是一个普通的递归,无法转成迭代进行计算。为了使用迭代的结构,必须首先定义一个list的反转过程,其定义为(define (reverse l) (define (reverse-iter r l) (if (null? l) r (reverse-iter (cons (car l) r) (cdr l)) 阅读全文
posted @ 2012-09-29 22:55 mathlover 阅读(332) 评论(0) 推荐(0) 编辑