自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Sphinxsky

受命于天...既寿永昌

  • 博客(11)
  • 资源 (2)
  • 收藏
  • 关注

原创 关于SICP中练习3.66

起初在做这题的时候,第一时间想到的是写一个迭代过程和一个计数器相互配合,循环地比较pairs流中每个数对,当和(1, 100)或是(100, 100)相等的时候,就把计数器的值输出就可以了(假设是从0开始标记第一个数对的)。但是理想很丰满,现实很骨感。前者(1, 100)能按照这个思路很快就可以得出答案来(197),但是后者直接内存溢出了,说明这个序对应该排在非常得后面。正如我下面的分析,也证实了...

2020-01-15 01:36:40 157

原创 关于SICP中练习3.43的代码分析

在前一篇文章关于练习3.38的代码分析的基础上,完全可以用同样的套路来解决练习3.43。其实解决练习3.38的代码在通用性上还是蛮强的。比如练习3.40前面小问,只需要对 make-process 过程重写一下就好了,这里就不再废话了。通过表来模拟并发确实是一个用起来很方便的技巧。同样,在解决练习3.43的后面几小问上也很有效。首先,我们大致的可以把此练习分成四个小问题:1、如果这些进程是顺序...

2019-11-27 20:09:34 192

原创 关于SICP中练习3.38第二小题的代码分析

初看这题颇为棘手,但是仔细分析后,还是可以通过代码来完美解决的。陈然更聪明的人在脑子中就能做分析了,但是向我这种笨蛋,还是得靠MIT-scheme解释器来帮忙解决。首先我们假设书中208页的注释 164成立,即对存储单元的基本写入操作是互锁的,并且再加一条,读取与写入对于操作同一个存储单元也是互锁的,那么才可以去讨论这一小题。这样一来,Peter、Paul和Mary的对同一个balance的三种...

2019-11-14 20:11:04 155

原创 SICP中关于兑换零钱的练习

记得在SICP的第一章中,第1.2.2小节讲树形递归的时候,有一个实例是换零钱方式的统计。其中,作者是用的树形递归去求解的。但是,在这个实例的最后,作者又以找到一个效率更高的算法作为了一个非正式的作业,留给了读者作为挑战。起先在看完这节内容的时候,也是绞尽脑汁都想不出还能有什么更好的算法。但是,在看完了大半本书之后,无意中发现了一种方式。其实方法也很笨,就是枚举法,只是当时学到的语法太少了,不知道...

2019-09-06 01:58:54 324

原创 关于SICP中练习2.85与练习2.86

这是书中对于2.5节里通用算数系统最后的两个练习了。其中练习2.85还是非常简单的,因为思路在题目中已经完全给出了,我们要做的只是用scheme翻译一下就好了,但是这个project过程的实现我还是想要吐槽一下。首先,按照书中题目的意思,这个过程本应该是将类型塔中的类型做下压的过程,与raise可以说是互为逆过程(题目中的要求也是这样,希望通过类似: (equ? x (raise (project...

2019-02-02 03:32:20 235

原创 关于SICP中练习2.83与练习2.84

这两道练习加在一起,就是书中第135页上提到的,一种关于apply-generic过程改写思路的具体实现。其实,练习2.83相对来说更简单,我就先直接放代码了:; 安装类型提升包(define (install-raise-package) ; 安装从整数转换到有理数的过程 (put 'raise '(scheme-number) (lambda (n) (ma...

2019-01-29 01:05:24 292

原创 关于SICP中练习2.82的实现

起初在看到这道练习的时候是一头雾水,感觉作者真的有点画蛇添足的味道。因为我在前面的文章中提到过,其实我感觉书中第125页上的那个apply-generic过程已经写得很完美了,能用最少的代码来实现过程的多态。所以,我感觉象134页那样的对过程apply-generic的扩展(这里说是扩展,其实是削弱更恰当,因为不定长参数被降低到了两个参数的特殊情况)还是分装进表格中相应的被调用的过程里为好(可能还...

2019-01-27 23:33:52 408 1

原创 关于SICP中练习2.79与练习2.80

在SICP第二章的后半部分,基本讲的都是面向对象编程了,只是作者并不这么称呼而已。其实如果类比Java,那么消息传递可以类比于泛型,而数据导向就好比是多态,只不过这里要原生态得多。起初,我看到练习2.79的时候是一头雾水,以为编辑是不是搞错排版的顺序了,因为这道练习里牵扯到类型转换的内容,这应该是后面一小节的内容才是,那么这道练习过早得出现在这里实属不应该啊。因为equ?过程中有两个参数,而且题...

2019-01-24 04:57:45 216

原创 关于SICP中练习2.58的实现

当看完了书中关于符号化求导的例子之后,做到习题2.58的时候,发现此题之中 b) 小题要求实现的标准代数式写法的求导过程确实有一定的难度。当然,如果题目不难的话就不是SICP的风格了,哈哈。当我仔细分析题意的时候发现,如果确实需要按照题目中所提示的方法,通过改写构造函数与选择函数来实现的话,那就先要去实现 a) 小题中的中缀表达式的构造与选择过程,然后再通过类比上一题2.57的实现思路,确实可以...

2018-12-17 06:25:40 317

原创 基于SICP中练习2.49的发散思维

经过SICP中练习2.49的实现,我发现在不知不觉之中我竟然几乎是实现了一个MIT-scheme的迷你作图库,然后我发现可以用这个迷你函数库来做一些有趣的事情。比如实现如下的一个画出割圆法的实现:cyclotomy.scm(load "enumerate-interval.scm"); 均等分割一个单位圆周为 n 份; 并做出内接正 n 边形; 结果通过一个 line-list 返回...

2018-12-01 01:38:09 268

原创 关于SICP中练习2.49中的实现

关于SICP中练习2.49中的实现我最近在看SICP,当看到2.2.4的时候发现这一节的习题无法直接在解释器中去验证,因此感觉很难受。于是在网上各种搜索,终于被我找到一种解决方案。现在以SICP中练习2.49为例子,放出我的源代码,供大家学习参考。因为本人英语水平有限,所以注释都是中文,请大家谅解。所有代码都已经在MIT-scheme中调试通过,解释器版本信息如下:首先是实现一个基础的向量工...

2018-11-30 23:43:49 305

IQ与IQT电器介绍

英国Rotork公司的电动执行机构,型号为IQ与IQT系列的介绍文档。

2018-10-21

Linux命令大全

这是一本非常全的Linux命令大全 对学习linux很有帮助

2013-10-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除