加载中
【SICP练习】150 练习4.6

练习4-6 原文 Exercise 4.6. Let expressions are derived expressions, because (let (( ) … ( )) ) is equivalent to ((lambda ( … ) ) ) Implement a syntactic transformation let->co...

【SICP练习】152 练习4.8

练习4-8 原文 Exercise 4.8. “Named let” is a variant of let that has the form (let <var> <bindings> <body>) The and are just as in ordinary let, except that is bound within to ...

【SICP练习】151 练习4.7

练习4-7 原文 Exercise 4.7. Let* is similar to let, except that the bindings of the let variables are performed sequentially from left to right, and each binding is made in an en...

【音乐分享】Let Me Go

LET ME GO Breathe it in Hold my breath I don’t have the heart To live without it It’s my fault It’s your fault If you don’t give a damn Forget about it I won’t call it bad...

2015/09/08 21:48
4
【SICP练习】44 练习2.3

 练习2.3 我们并不必急于写出点什么,先来回过头看看书吧。第56页说到了一种称为按愿望思维的强有力的综合策略。在这道题里,我们就可以假设已经写好了能够表示矩形的代码,以及能够求矩...

2015/09/08 21:49
1
【Scheme归纳】3 比较do, let, loop

对象的比较 eq? 这个函数用来比较2个对象的地址,如果相同的话就返回#t。在Scheme中真用#t表示,假则用#f。 例如,(eq? str str)返回#t,因为str本身的地址的是一样的,但是”scheme”和”s...

【SICP练习】80 练习2.52

 练习2.52 在这道题上面的文字中就说到了用segments->painter提供线段表,这里的a小题的代码如下: (segments->painter (list(make-segment (make-vect 0.0 0.0) (make-vect 1.0 1.0)) (...

2015/09/08 21:50
1
【SICP练习】79 练习2.51

 练习 2.51 通过书中前面的内容,我们知道below中来将框架分成上下两部分,而beside将框架分成左右两部分。因此,below定义如下: (define (below painter1 painter2) (let ((split-poi...

2015/09/08 21:52
1
【C++注意事项】6 Library string Type

Processing Every Character? Use Range-Based for If we want to do something to every character in a string, by far the best approach is to use a statement introduced by the new s...

【SICP练习】42 练习2.1

 练习2.1 我们已经进入了新的一章,这本书还是蛮会循序渐进的嘛,第一题挺简单的。 (define(make-rat n d) (let ((g (gcd n d))) (if (< d 0) (cons (- (/ n g)) (- (/ d g))) (cons n ...

2015/09/08 21:48
2
【SICP练习】73 练习2.44

 练习2.44 这一小节的内容真是太抽象了。这道题就是要我们来类比前面的right-split函数了。 (define (up-split painter n) (if (= n 0) painter (let ((smaller (up-split painter (- n...

2015/09/08 21:51
1
【SICP练习】74 练习2.45

 练习2.45 我们先将right-split和up-split抽象出一个split来。 (define (split big-combinersmall-combiner) (lambda (painter n) (if (= n 0) painter (let ((smaller ((split big-comb...

2015/09/08 21:47
2
【SICP练习】22 练习1.28

 练习1.28 这道题主要分为三个部分: 1、非平凡平方根,并添加到expmod函数中 2、类似于fermat-test的过程 3、通过已知的素数和非素数来检验 下面我们首先来写出能够在遇到非平凡平方根的...

2015/09/08 21:50
2
【SICP练习】43 练习2.2

 练习2.2 (define(make-segment start-point end-point) (cons start-point end-point)) (define(start-segment seg) (car seg)) (define(start-segment seg) (cdr seg)) (define(make-...

2015/09/08 21:47
0
【SICP练习】125 练习3.56

练习3-56 原文 Exercise 3.56. A famous problem, first raised by R. Hamming, is to enumerate, in ascending order with no repetitions, all positive integers with no prime factors ...

【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
【SICP练习】41 练习1.46

 练习1.46 这道题要求我们写一个过程iterative-improve,其接受两个过程为参数,一个是判断检测是否足够好的good-enough?和另一个改进猜测的improve。其有一个猜测的数字作为参数,然后返...

2015/09/08 21:45
2
【Scheme归纳】6 赋值

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

2015/09/08 21:45
49
【SICP练习】16 练习1.22

 练习1.22 这道题中需要判断素数的部分书中都已经列出来了,但要求是要找出多个素数,因此我们要有一个能够不断求素数的函数。在C等语言中我们可以通过一个for循环来轻易地求出来,在Sch...

【SICP练习】71 练习2.42

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

2015/09/08 21:51
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部