加载中
【SICP练习】46 练习2.5

 练习2.5 这道题的意思是有一个新的cons,其接受两个参数a、b,并且返回(2^a)*(3^b)。这个比较容易实现了。 (define (cons a b) (* (expt 2 a) (expt 3 b))) (cons 2 2) ;Value: 36 根据...

2015/09/08 21:48
0
【SICP练习】68 练习2.39

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

2015/09/08 21:47
1
【SICP练习】57 练习2.27

 练习2.27 又是修改程序的题目,要求我们写出的deep-reverse函数要将表中的元素也反转过来,这其中应该要用到递归来实现吧。 (define (deep-reverse tree) (cond ((null? tree) ‘()) (...

2015/09/08 21:46
70
【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
45
【SICP练习】65 练习2.36

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

2015/09/08 21:47
18
【SICP练习】55 练习2.23

 练习2.23 这道题就有小小的难度了。(define (for-each f lst) (cond ((not (null? lst)) (f (car lst)) (for-each f (cdr lst))))) 如果用上前面经常用到的begin和if,这里还有另一种f...

2015/09/08 21:51
10
【SICP练习】51 练习2.19

 练习2.19 这道题的题目比较长,但是难度却不大的。无非就是用cons、car、cdr等等,就像前面的矩形啊点啊什么的。 (define (first-denominationcoin-values) (car coin-values)) (define...

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

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

2015/09/08 21:45
96
【SICP练习】44 练习2.3

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

2015/09/08 21:49
16
【SICP练习】76 练习2.47

 练习2.47 这道题重点就是要理清楚list和cons的关系了。我们依次来写出过程函数。 (define (make-frame origin edge1 edge2) (list origin edge1 edge2)) (define (origin-frame f) (car...

2015/09/08 21:45
40
【SICP练习】59 练习2.29

 练习2.29 这种题,还有之前的那个rectangle的题目,对于变量、函数等的命名简直要让人疯掉。先来写出题目中的left-branch和right-branch吧。 (define (left-branch mobile) (car mobile...

2015/09/08 21:49
69
【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练习】71 练习2.42

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

2015/09/08 21:51
0
【SICP练习】67 练习2.38

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

2015/09/08 21:46
8
【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练习】83 练习2.55

练习2.55 书上已经说过了在求值过程中引号会被替换成quote。因为表达中有2个单引号,因此car得到了第二个单引号。如果是cdr则会得到后面的一串字母。 (cdr ‘’abracadabra) ;Value: (abrac...

2015/09/08 21:48
1
【SICP练习】77 练习2.48-2.49

 练习2.48 (define (make-segment start end) (list start end)) (define (start-segment s) (car s)) (define (end-segment s) (cadr s)) 练习2.49 待填充 版权声明:本文为 NoMasp柯于...

2015/09/08 21:48
21
【SICP练习】53 练习2.21

 练习2.21 如果在看SICP这本书之前做过其他准备工作,或者看过我的【Scheme归纳】那几篇文章,那这些题都是小case了。 (define (square-list items) (if(null? items) ‘() (cons (squar...

2015/09/08 21:49
14
【SICP练习】50 练习2.18

 练习2.18 这道题也不难,通过迭代来完成。不过我想整个过程,无论是两个define还是一个define,都只用一个参数,但还为完成,希望有谁会的在博文下面评论咯。 (define (reverse list) (...

2015/09/08 21:45
7
【SICP练习】147 练习4.3

练习4-3 原文 Exercise 4.3. Rewrite eval so that the dispatch is done in data-directed style. Compare this with the datadirected differentiation procedure of exercise 2.73. (You ...

没有更多内容

加载失败,请刷新页面

返回顶部
顶部