首页 > 编程语言 > 详细

[2021 spring] CS61A Lab 12: Tail Recursion, Scheme

时间:2021-08-05 15:53:02      阅读:18      评论:0      收藏:0      [点我收藏+]

Lab 12: https://inst.eecs.berkeley.edu/~cs61a/sp21/lab/lab12/

Q2: Replicate

scheme的tail-recursion比python快得多,需要辅助函数

(define (tail-replicate x n)
    (define (tail-replicate-optimize x n so-far)
        (if (= n 0)
            so-far
            (tail-replicate-optimize x (- n 1) (cons x so-far))))
    (tail-replicate-optimize x n nil))

Q3: Scheme def

技术分享图片

(define-macro (def func args body)
  `(define ,func (lambda ,args ,body)))
# or
(define-macro (def func args body)
  `(define (,func ,@args) ,body))

Q4: Repeatedly Cube

利用递归进行重复立方

(define (repeatedly-cube n x)
  (if (zero? n)
      x
      (let ((y (repeatedly-cube (- n 1) x)))
        (* y y y))))

[2021 spring] CS61A Lab 12: Tail Recursion, Scheme

原文:https://www.cnblogs.com/ikventure/p/15101444.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!