`
hotcharm
  • 浏览: 17098 次
  • 性别: Icon_minigender_1
  • 来自: 义乌
最近访客 更多访客>>
社区版块
存档分类
最新评论

sicp练习1.18 基于加法、加倍和折半运算求两个整数之乘积

F# 
阅读更多

;double的功能是2*n
(define (double n)
  (+ n n))

(double 5)

;havle-iter函数的功能是通过迭代获得n的一半的值,guess是初始猜测值
(define (havle-iter guess n)
  (cond ((not (integer? n)) (display "error: 原因havle函数的参数是整数\n"))
        (( and (< (double guess) n) (<= (double (+ guess 1)) n)) (havle-iter (+ 1 guess) n))
        (( and (> (double guess) n)) (havle-iter (- guess 1) n))
        (( and (< (double guess) n) (> (double (+ guess 1)) n)) (+ guess 0.5))
        ((= (double guess) n) guess)))
;havle函数的功能是通过迭代获得n的一半的值,guess是初始猜测值是1
(define (halve n)
  (havle-iter 1 n))

(halve 16)

(halve 37)

(halve 35.5)

;even?函数功能是判断n是否是偶数,如果是偶数值为#t,否则为#f
(define (even? n)
  (cond ((= n 0) #t)
        ((= n 1) #f)
        ((and (integer? n) (< n 0)) (even? (+ n 2)))
        ((and (integer? n) (> n 1)) (even? (- n 2)))
        (else #f)))

(even? 13)

(even? 22)

(even? 22.5)

;*函数的功能是a乘以b
(define (* a b)
  (cond ((or (= a 0) (= b 0)) 0)
        ((= a 1) b)
        ((even? a) (* (halve a) (double b)))
        (else (+ (* (- a 1) (- b 1)) a b -1))))

(* 3 4)
 
分享到:
评论

相关推荐

    sicp第二章练习题的解答

    《SICP(Structure and Interpretation of Computer Programs)》是一本经典的计算机科学教材,由Harold Abelson和Gerald Jay Sussman所著,它强调了程序设计的基础和原理,特别是函数式编程思想。第二章主要探讨了...

    sicp:我的 SICP 练习

    《SICP:我的SICP练习》是关于Scheme编程语言和计算机程序设计原理的一份学习资料。SICP,全称《结构与解释程序》(Structure and Interpretation of Computer Programs),是由Harvard大学的Hal Abelson和MIT的...

    SICP 习题答案

    《计算机程序的构造和解释》(SICP)是一本极具影响力的计算机科学教材,由Harold Abelson和Gerald Jay Sussman所著,MIT出版社出版。这本书以其深入探讨编程概念、程序设计方法以及计算机系统的工作原理而闻名。1-3...

    SICP习题解答,主要第一章的内容习题答案

    4. **1.29~1.30.ss**: 这两个文件可能涵盖的是宏和元编程的概念。SICP强调程序也是数据,这意味着我们可以编写程序来生成或修改其他程序。宏就是这样的工具,它们允许我们在编译时扩展语言,创建新的语法结构。这...

    sicp-solutions:SICP练习解决方案

    "sicp-solutions"是一个针对该书练习题的解答集,主要使用了Scheme语言,一个Lisp方言,而具体的实现环境是mit-scheme 9.2。 Scheme语言是Lisp家族的一员,以其简洁的语法和强大的函数式编程特性闻名。在"sicp-...

    sicp:我对SICP练习的回答

    在“sicp-master”这个压缩包中,包含了作者对SICP各章节练习的解答。通过阅读和分析这些解答,我们可以加深对书中理论的理解,提高编程技巧,并能更好地应用到实际的软件开发中。记住,实践是检验理论的最好方式,...

    sicp-clojure:在 Clojure 中解决的 SICP 练习

    "sicp-clojure" 项目则是将 SICP 的练习用 Clojure 语言进行了实现,为学习者提供了从不同角度理解和应用 Lisp 风格编程的良好资源。 在这个项目中,你可以找到一系列 Clojure 代码,它们对应于 SICP 教程中的各个...

    sicp 2.2.4节图形语言

    《SICP 2.2.4 节:图形语言》是计算机科学经典教材《结构与解释程序》(Structure and Interpretation of Computer Programs)中的一个重要章节,它深入介绍了如何利用编程来创建图形,以及如何设计和理解复杂的计算...

    sicp in python 中文 sicp 中文

    sicp in python 中文版 sicp in python 中文版 sicp in python 中文版 !!!download&gt;&gt;&gt;https://github.com/wizardforcel/sicp-py-zh

    北京大学,计算机程序构造和解释(SICP)课件,裘宗燕老师主讲

    《计算机程序构造和解释》(SICP,Structure and Interpretation of Computer Programs)是一本具有深远影响力的计算机科学教材,由Harold Abelson和Gerald Jay Sussman编写,MIT Press出版。这门课程由北京大学数学...

    sicp-Structure and Interpretation of Computer Programs

    书中大量的练习题和示例代码鼓励读者动手实践,加深对概念的理解。此外,SICP还引入了许多先进的编程思想和技术,如函数式编程、递归、抽象数据类型等,这些都对现代软件开发产生了深远的影响。 #### 四、总结 ...

    SICP(python中文带书签)

    《计算机程序的构造与解释》(Structure and Interpretation of Computer Programs,简称SICP)是一本备受推崇的经典计算机科学教材,由Harold Abelson和Gerald Jay Sussman撰写,并由MIT出版社出版。这本书以其深入...

    SICP中文第二版

    SICP中文第二版SICP中文第二版SICP中文第二版SICP中文第二版SICP中文第二版

    SICP 解题集

    《SICP解题集》是一份专注于探讨和解答《结构与解释程序》(Structure and Interpretation of Computer Programs,简称SICP)一书中习题的资源。SICP是计算机科学领域的一本经典教材,由Harold Abelson、Gerald Jay ...

    SICP-Solutions:我对 SICP 练习的回答

    在SICP-Solutions-master这个压缩包中,可能包含了各个章节的练习解答,按照书中的结构进行组织,每个子文件对应一个或多个练习的问题和解题思路。通过阅读这些解答,读者可以了解到如何应用SICP中的概念来解决实际...

    SICP LISP AI

    本书的第二版包含了中文和英文两个版本,旨在帮助读者理解计算机程序的本质,以及如何通过Lisp和Scheme语言来构建和解释这些程序。 Lisp是一种古老而强大的编程语言,以其独特的括号语法和函数式编程特性而著名。它...

    sicp:SICP练习的解决方案

    书中的练习和解决方案是深入理解和掌握该书内容的关键部分。"sicp"这个描述可能是指《结构与解释程序》(Structure and Interpretation of Computer Programs)的缩写,这通常被简称为SICP。本书主要探讨了程序设计...

    sicp 2016 from

    ### 结构与解释计算机程序 (SICP) #### 标题和描述中的核心知识点解析 **《结构与解释计算机程序》(Structure and Interpretation...本书因其深入浅出的讲解和丰富的实例而成为学习计算机科学和程序设计的经典之作。

    SICP:在 Scheme 中制定的 SICP 编程练习

    《SICP:在 Scheme 中制定的 SICP 编程练习》是针对计算机科学教育领域的一本经典教材——《结构与解释程序》(Structure and Interpretation of Computer Programs,简称 SICP) 的实践部分。SICP 由 Harold Abelson ...

Global site tag (gtag.js) - Google Analytics