加载中
【SICP练习】63 练习2.34

 练习2.34 书中一开始有2个式子,一个是原式,一个根据Horner规则构造出的式子。而我们同样也可以将待求得式子写成这种方式,而且可以更进一步——那就是写成Lisp的前序表示: (+ 1 (* ...

2015/09/08 21:49
1
【SICP练习】108 练习3.21

练习3-21 原文 Exercise 3.21. Ben Bitdiddle decides to test the queue implementation described above. He types in the procedures to the Lisp interpreter and proceeds to try them...

【SICP练习】145 练习4.1

练习4-1 原文 Exercise 4.1. Notice that we cannot tell whether the metacircular evaluator evaluates operands from left to right or from right to left. Its evaluation order is inh...

2015/09/08 21:48
1
【Scheme归纳】6 赋值

赋值 因为Scheme是函数式语言,通常来说,你可以编写不使用赋值的语句。然后如果使用赋值的话,有些算法就可以轻易实现了。尤其是内部状态和继续(continuations)需要赋值。 R5RS中规定的用...

2015/09/08 21:45
36
【SICP归纳】5 泛型运算符

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

【SICP归纳】3 层次性数据和符号数据

在学习书中第二章的时候有个问题一直让我很困扰,那就是2.2.4节的实例,因为没法输出书中华丽的图案,只能是一对英文字母。这在几个月前浅浅的学了一会Common Lisp的时候也是如此,当时看到书...

【SICP练习】20 练习1.26

 练习1.26 这本书的练习好像很多都和某个人有关,不愧是一本经典著作,通过MIT大量的修修补补。下面我们进入正题吧,Louis的问题就在于计算了2次(expmod base (/ exp 2) m),如果是用的s...

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

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

【SICP练习】65 练习2.36

 练习2.36 虽然accumulate正在变得越来越复杂,但我还并未完全领悟到它的深刻意义。不过直觉告诉对于序列的序列,我们要做的是依次取出它每个序列的第一个元素。此方法来源于网络,我一直...

2015/09/08 21:47
1
【SICP练习】1 练习1.1-练习1.5

 练习1.1 这道题主要是关于简单的数字运算,我们看完之后可以在MIT-Scheme中进行验算。如果环境不熟悉,可以参见【Scheme归纳】的第一篇博文。如果发现在MIT-Scheme等环境上的运算结果和...

【Scheme归纳】7 常用关键字

display 在common lisp中有format,在scheme中则有display,轻松应对各种输出。 (display(+ 1 2 3 4)) 10 ;Unspecifiedreturn value (display‘(1 2 3 4)) (12 3 4) ;Unspecifiedreturn valu...

2015/09/08 21:48
15
几乎所有编程语言的hello, world程序(2)

D // Hello World in D import std.stdio; void main() { writefln("Hello World!"); } D4 // Hello World as a relation-variable in D4 select row { "Hello World" AMessage } Dar...

【Scheme归纳】5 数据结构

Scheme的数据结构 在前面的博文中我们使用了list等等,像其他的编程语言一样,Scheme也有字符(Character),字符串(String),符号(Symbol),向量(Vector)等数据结构。下面我们来一一介...

2015/09/08 21:51
8
【SICP练习】71 练习2.42

 练习2.42 这道题曾经在C#中写过,但是写出来的代码却没有Lisp中的朴素。用了一大堆的数组和for循环。但是在这里,用car、cdr来构造就行了。 我们按书中给出的步骤来一步一步求解这个问题...

2015/09/08 21:51
0
【SICP归纳】6 副作用与环境模型

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

你一事无成,还在那里傻乐

你一事无成,还在那里傻乐。——韩寒《后会无期》 过去的一年半,你踏入大学生活,接触了从未接触过的编程语言。你从一开始的C++语言跳到后来的C#语言,又从Common Lisp语言跳到Scheme语言,...

【SICP练习】23 练习1.29

 练习1.29 这道题的数学气息比较浓厚。像变量h和函数y在书中已经有了定义,并且n是偶数。另外通过观察我们发现当k等于0或者n时,y的系数为1;当k为偶数时,y的系数为2;当k为奇数时(在函...

2015/09/08 21:46
9
几乎所有编程语言的hello, world程序(1)

简介 “hello, world”程序是指在电脑屏幕上打印/输出”hello, world”这行字符串的应用程序。该范例最早出自1972年由贝尔实验室成员布莱恩柯林汉撰写的内部技术档案”A Tutorial Introducti...

100的阶层真的算不出来吗?

今天看到一个蛮有意思的题,是问“100!”的尾数有多少个零。 尾数有多少个零,实际上指的是从这个数的最后一个不为0的数的下一个(也就是0)开始计数,一直到最后一个数(这些数自然都是0)...

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

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

没有更多内容

加载失败,请刷新页面

返回顶部
顶部