加载中
【SICP练习】5 练习1.9

 以下是第一个加起两个正整数的方法,其中inc将参数加1,dec将参数减1。 (define (+ a b) (if(= a 0) b (inc (+ (dec a) b)))) 用代换模型展示(+ 4 5)如下: (+ 4 5) (inc (+ 3 5)) (inc...

【SICP练习】67 练习2.38

 练习2.38 这道题比较有意思了,我们先来将fold-left和accumulate类比,accumulate是递归,而fold-left是迭代。前者通过不断地将(op result (car rest)变换成initial,通过将(cdr rest)变...

2015/09/08 21:46
1
【SICP归纳】1 过程和代换模型

《计算机程序的构造和解释》这本书的目标并不是讲解一门编程语言的语法等,它是一种方法。不是在向你陈述知识,而是在教你如何做到想要做的东西。它是一个过程,一个精神。这些引导过程的东西...

【SICP练习】45 练习2.4

 练习2.4 直接运用对比的技巧就可以猜测出相应的cdr表示如下: (define (cdr z) (z (lambda (p q) q))) 但我们还是要按照题中要求用代换模型来检验。先来检验car的。 (car (cons 0 1)) (...

2015/09/08 21:51
2
【SICP练习】68 练习2.39

 练习2.39 通过前一习题的类比相信已经知道了fold-left和fold-right的内在意义,本题中要求的逆序数可以用cons来构造。具体为,先将list的第一个元素取出用(cons (car list) ‘() )构造,...

2015/09/08 21:47
1
【SICP归纳】4 模式匹配和以规则为基础的代换

在书中符号数据一节中,作者写了关于微积分的演算规则的程序。这是一个很程序化的程序,我们所做的是在讲这些(数学)规则翻译成计算机语言。因为它有程序化的行为和结构,那么存在其他的方法...

【SICP归纳】5 泛型运算符

关于数据抽象,有两个很重要的思想。一是在构建一些水平的抽象障碍在这个系统中。用某些对象来代换这些单独使用的抽象屏障。二是当需要使用某种形式的数据对象时,往往可以由其他人来将其实现...

NoMasp博客导读

简介 博客简介 您能看到这篇博客是我的荣幸,本博客会持续更新。感谢您的支持,欢迎您的关注和留言。博客主要有4个专栏,分别讲解了Windows App的开发、关于SICP的习题和Scheme语言的学习、以...

【SICP归纳】6 副作用与环境模型

虽说叫做副作用显得不太好听,但在Lisp中副作用还是非常重要的。而相对于所有状态都必须显式地操作和传递额外参数的方式,如果引进赋值和将状态隐藏在局部变量中,那么就可以用更加模块化的方...

【SICP归纳】2 高阶函数和数据抽象

上一篇博文对应的是书中的第一章的一二两节,我们已经大致的有了一种构造的感觉不是么。书中展示了很多有趣的句法(syntax)。现在我们要让思想进一步的抽象,写这篇博客的时候并未学完整本书...

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部