我刚刚开始观看讲座4a sicp,我完全迷失了。似乎从第3讲到第4讲的难度增加了。这些讲座在youtube上是否与当前的麻省理工学院课程无关? http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/lecture-notes/
https://www.youtube.com/watch?v=amf5lTZ0UTc&index=7&list=PL8FE88AA54363BC46
有人可以向我解释他正在做的一般过程是什么吗?我还没有读过这本书,只是在youtube上观看视频。我是否应该停止观看视频并阅读本书并沿途进行每一次练习?
的(:x1)和(?x2)是什么?
(define deriv-rules
'(
( (dd (?c c) (? v)) 0)
( (dd (?v v) (? v)) 1)
( (dd (?v u) (? v)) 0)
; Derivative of (+ x1 x2) in respect to v
( (dd (+ (? x1) (? x2)) (? v))
(+
(dd (: x1) (: v))
(dd (: x2) (: v))
)
)
; Derivative of (* x1 x2) in respect to v
( (dd (* (? x1) (? x2)) (? v))
(+
(* (: x1) (dd (: x2) (: v)))
(* (dd (: x1) (: v)) (: x2))
)
)
; Derivative of x^(const) in respect to v
( (dd (** (? x) (?c n)) (? v))
(*
(* (: n) (** (: x) (: (- n 1))))
(dd (: x) (: v))
)
)
)
)
答案 0 :(得分:0)
在您发布的最后一个链接中,视频的11:37解释了冒号。问号稍早解释一下。我们来看看这段代码:
(define deriv-rules
'(
( (dd (?c c) (? v)) 0) ; 1
( (dd (?v v) (? v)) 1) ; 2
( (dd (?v u) (? v)) 0) ; 3
; Derivative of (+ x1 x2) in respect to v
( (dd (+ (? x1) (? x2)) (? v)) ; 4
(+
(dd (: x1) (: v))
(dd (: x2) (: v))
)
)
…
deriv-rules
是一个列表列表,每个列表都为(pattern derivative)
。例如,规则1,2和3分别为:
这些中没有使用冒号,因为这些衍生物都不需要实例化。但是,规则4表示,对于任何 v ,总和 x 1 + x 2 的导数是 x 1 的导数之和与 v 和 x 2 的导数关于 v 。 (: …)
表示法提供了一种引用变量…
的值的方法。