存档

  • sicp 笔记 (3)

    第二章习题 2.33 – 2.51 的解答。

    E-2.33:

    (define (accumulate op initial sequence)
      (if (null? sequence)
        initial
        (op (car sequence)
            (accumulate op initial (cdr sequence)))))
    
    ; -----------------------------------------------------------------------
    
    (define (my-map p sequence)
      (accumulate (lambda (x y) (append (list x) y)) (list) sequence))
    
    (define 

    阅读全文…

    2013年3月24日 | 归档: 计算机程序的构造和解释 | 标签:
  • sicp 笔记 (2)

    第二章习题 2.1 – 2.32 的解答。

    E-2.1:

    (define (numer x) (car x))
    (define (denom x) (cdr x))
    
    (define (print-rat x)
      (display (numer x))
      (display "/")
      (display (denom x))
      (newline))
    
    ; -------------------------------------------
    
    (define (make-rat n d)
      (if (or (and (> n 0) 

    阅读全文…

    2013年2月24日 | 归档: 计算机程序的构造和解释 | 标签:
  • sicp 笔记 (1)

    “sicp”全称是“Structure and Interpretation of Computer Programs”,是 MIT 计算机专业第一年的一门入门课程的教材(据说现在已经取消了这门课,取而代之的是另一门使用 python 的课程)。网上很多人都强烈推荐这本书,给出了各种赞美之词,因此从网上找了个排版比较好的电子版(google 搜“sicp unofficial texinfo format”,我用的是 2.neilvandyke4 这个版本)。直到研究生快毕业才开始学习别人本科第一年的教材,希望亡羊补牢还不算晚。

    这里使用 plt-scheme,除了 1.28 小题的 random 函数之外其它题目都能运行,推荐使用 mit-scheme(debian 中只有 i386 的包,64 位的需要自己到官网下载编译)。

    下面是第一章的习题解答部分。

    E-1.1: 把内容对着敲一遍就行了

    E-1.2:

    (/ (+ 5 4 (- 2 (- 3 (+ 

    阅读全文…

    2012年10月10日 | 归档: 计算机程序的构造和解释 | 标签:
文章标签 ‘sicp’
  • 当前页 2 / 2
  • «
  • 1
  • 2