惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Security Latest
Security Latest
Recorded Future
Recorded Future
人人都是产品经理
人人都是产品经理
S
SegmentFault 最新的问题
Hacker News - Newest:
Hacker News - Newest: "LLM"
C
CXSECURITY Database RSS Feed - CXSecurity.com
博客园 - 三生石上(FineUI控件)
博客园 - 聂微东
P
Privacy & Cybersecurity Law Blog
WordPress大学
WordPress大学
Know Your Adversary
Know Your Adversary
Spread Privacy
Spread Privacy
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
量子位
L
LINUX DO - 热门话题
L
Lohrmann on Cybersecurity
博客园 - Franky
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Tor Project blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
雷峰网
雷峰网
阮一峰的网络日志
阮一峰的网络日志
V
Visual Studio Blog
T
Threatpost
T
Tenable Blog
有赞技术团队
有赞技术团队
大猫的无限游戏
大猫的无限游戏
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI
C
Cisco Blogs
H
Heimdal Security Blog
Attack and Defense Labs
Attack and Defense Labs
A
About on SuperTechFans
Last Week in AI
Last Week in AI
N
News and Events Feed by Topic
T
Threat Research - Cisco Blogs
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
I
Intezer
V
V2EX
Cyberwarzone
Cyberwarzone
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
B
Blog RSS Feed
V
Vulnerabilities – Threatpost
N
Netflix TechBlog - Medium
T
The Blog of Author Tim Ferriss
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
U
Unit 42
PCI Perspectives
PCI Perspectives
P
Privacy International News Feed
D
Docker

博客园 - linkcd

linkcd胡扯职业生涯规划(二): 关于 人 linkcd胡扯职业生涯规划(一): 关于定位 如何才能用好Email? 让Switch-Case/If-Else-If-Else从你系统中走开 [翻译]每个作者都应该懂的统计学 Part I Castle.MircoKernel Class Diagram - Part I 一个不错的scheme入门PPT 人格类型 测试结果 .Net 2.0 下Data Container性能比较: Binary Serialize Dataset vs Custom Classes 智能替换DataTable.Select中会导致错误的单引号 - linkcd - 博客园 Nullable Type is an immutable type Why does Dataset NOT serialize its BinaryFormat property? (ADO.net 2.0) Undocumented Keywords in C# System.Int32&是个啥? 《4个程序员的一天》(续) 由idior的问题想到的 回FantasySoft 4个程序员的一天 n久以前写的火星文 在Vs.net中集成 NDoc生成的 Html Help 2帮助文档
Solution for SICP
linkcd · 2005-04-30 · via 博客园 - linkcd

因为找不到SICP的辅导书, 有些要求explain的solution就不知道答案了, sigh...
不知道直接去找MIT的教授要, 他们会不会给...

1.1.7 Square Roots by Newton's Method
(define (avg x y)
  (/ (+ x y) 2))

(define (abs x)
  (if (< x 0)
      (- x)
      x))

(define (IsGoodEnough? guess target)
   (< (abs (- (* guess guess) target)) 0.00000000000000001))
    
(define (improve guess target)
  (avg (/ target guess) guess))

(define (sqrt-iter guess target)
  (if (ISGoodEnough? guess target)
      guess
      (sqrt-iter (improve guess target)
                 target)))

(define (sqrt x)
  (sqrt-iter 1.0 x))

(define (new-if predicate then-clause else-clause)
  (cond (predicate then-clause)
        (else else-clause)))

(define (new-sqrt-iter guess target)
  (new-if (ISGoodEnough? guess target)
      guess
      (new-sqrt-iter (improve guess target)
                 target)))

(define (new-sqrt x)
  (new-sqrt-iter 1.0 x))

Exercise 1.8: Newton’s method for cube roots is based on the fact that if y is
an approximation to the cube root of x, then a better approximation is given
b y the value
x/y^2 + 2y
----------
3
Use this formula to implement a cube-root procedure analogous to the squareroot procedure. (In section Section 1.3.4 [1-3-4], page 69 we will see how to implement Newton’s method in general as an abstraction of these square-root and cube-root procedures.)
section 1.3.4 we will see how to implement Newton's method in general as an abstraction of these square-root and cube-root procedures.)

My Solution:

(define squre
  (lambda (x)
    (* x x)))

(define abs
  (lambda (x)
    (if (< x 0)
        (- x)
        x)))

(define cube
  (lambda (x)
    (* x x x)))

(define IsGoodEnough?
  (lambda (guess target)
    (< (abs (- (cube guess) target)) 0.0000000000001)))
    
(define improve
  (lambda (guess target)
    (/ (+ (/ target (squre guess)) (* 2 guess)) 3)))

(define cube-iter
  (lambda (guess target)
    (if (isGoodEnough? guess target)
        guess
        (cube-iter (improve guess target) target))))
(define cube-root
  (lambda (n)
    (cube-iter 1.0 n)))

(cube-root 8)
(cube-root 27)
(cube-root 3)
(cube-root 2)