SICP 3.17 3.18

3.17

只算序对数,不同的需要map辅助数据结构

(define (count-pairs x)
  (if (not (pair? x))
      0
      (if (pair? (car x))
          (+ 1 (count-pairs (car x)) (count-pairs (cdr x)))
          (count-pairs (cdr x)))))

3.18

(define (cycle-checking x)
  (define (iter head tail)
    (if (null? tail)
	#f
	(if (cycle-checking (car tail))
	    #t
	    (if (eq? head (car tail))
		#t
		(iter head (cdr tail))))))
  (if (pair? x)
      (if (cycle-checking (car x))
	  #t
	  (iter (car x) (cdr x)))
      #f))

 

转载于:https://my.oschina.net/guzhou/blog/1507164

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值