`
messi_18
  • 浏览: 96495 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SICP practice1.11

阅读更多
今天,把昨晚作的这道题又重新修改了。在DrRacket中运行通过了。这个版本的是迭代的。递归的很简单就不写了。
#lang racket
;;this is for the practice 1.11 from SICP
(define (f n) 
  (define (f-iter a b c cnt) 
    (cond
      ((= cnt 2) (if (> a cnt) a 2))
      ((< cnt 2) cnt)
      (else (f-iter (+ a (* 2 b) (* 3 c)) a b (- cnt 1)))
    )
  )

  (f-iter 2 1 0 n)
  )

;; test
(display (= (f 0) 0))
(display (= (f -1) -1))
(display (= (f 1) 1))
(display (= (f 2) 2))
(display (= (f 3) 4))
(display (= (f 4) 11))


中间遇到了几个问题,其中一个比较有代表性:procedure application: expected procedure, given: #f (no arguments)
这个是由于多加了一层括号导致的。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics