SICP Exercise 2.19-

2.22
(define (for-each2 proc items)
  (proc (car items))
  
  (if (null? (cdr items))
      (newline)
      (for-each2 proc (cdr items))
      )
  
  )
2.21
(define (square-list3 items)
  (define (iter things answer)
    (if (null? things)
        answer
        (iter (cdr things)
              ( append  answer (list(square (car things)))
                    )
              ))
    )
  (iter items ())
  )

2.20
(define (square-list1 items)
  (if (null? items)
      ()
      (cons (* (car items) (car items) ) (square-list1 (cdr items)))
      )
  )
(define (square-list2 items)
  (map (lambda (x) (* x x)) items )
  )

2.19
(define us-coins (list 50 25 10 5 1))
(define uk-coins (list 100 50 20 10 5 2 1 0.5))

(define (cc amount coin-values)
  (cond ((= amount 0) 1)
        ((or (< amount 0) (null? coin-values)) 0)
        (else
         (+ (cc amount
                (except-first-denomination coin-values))
            (cc (- amount
                   (first-denomination coin-values))
                coin-values
                )
            ))
        )
  )

(define (first-denomination items)
   (car items)
  )

(define (except-first-denomination items)
  (cdr items)
  )

(cc 100 us-coins)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值