程序设计方法(中文版) - Matthias Fellisen

程序设计方法(中文版)

Matthias Fellisen

出版时间

2003-12-01

ISBN

9787115115560

评分

★★★★★

标签

编程

书籍介绍

《程序设计方法》以Scheme语言为基础介绍计算和程序设计的一般理论和实践。《程序设计方法》由8个部分和7个独立的章节(第8、13、18、24、29、33、38章)组成。8个部分主要讨论程序设计,独立章节则介绍一些与程序设计和计算相关的话题。《程序设计方法》第1至第3部分介绍了基于数据驱动的程序设计基础。第4部分介绍了程序设计中的抽象问题。第5部分和第6部分是与递归及累积相关的内容。《程序设计方法》的最后两部分说明了设计程序的意义,阐述了如何应用前6个部分所描述的程序设计诀窍,以及使用赋值语句必须特别小心的一些问题。

《程序设计方法》可作为高等院校计算机科学与技术专业“程序设计导论”和“计算导论”的教材和教学参考书,也可作为函数式语言和Scheme语言的入门教材。

AI导读
核心看点
  • 以Scheme语言为载体,系统讲授程序设计的一般理论与方法。
  • 强调函数式编程思维,从简单数据逐步过渡到复杂结构处理。
  • 提供严谨的程序设计步骤,包括合约、模板及测试等规范。
适合谁读
  • 计算机专业本科生,适合作为程序设计导论课程的教材。
  • 编程初学者,尤其是希望建立严谨设计思维的零基础上手者。
  • 对函数式编程感兴趣,或准备阅读SICP的进阶读者。
读前提醒
  • 切勿仅关注语法细节,应重点理解其背后的抽象与设计思想。
  • 需耐心跟随书中步骤练习,后半部分难度递增,需认真思考。
  • 建议配合DrScheme环境实践,通过动手操作加深理解。
读者共识
  • 被誉为函数式编程入门首选,逻辑清晰,适合培养设计思维。
  • 风格循序渐进,比SICP更友好,适合初学者建立信心。
  • 部分读者认为理论性较强,需一定耐心,不适合追求速成者。

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "In contrast to lists, structures deal with value extractions as a constant time operation. In general, what we really wish to have in a programming language is: 1.a class of compound values size with constant lookup time, 2.based on ``keys.'' Because the problem is so common, Scheme and most other l"
  • "DrScheme also provides a vector analogue to build-list. It is called build-vector. Here is how it works: 1.(build-vector N f) = (vector (f 0) ... (f (- N 1))) That is, build-vector consumes a natural number N and a function f on natural numbers. It then builds a vector of N items by applying f to 0,"
  • "<vdf>= (define <var> <val>) | (define <var> <exp>);定义函数语法糖 | (define-struct <var> (<var> ...<var>)) <val>= <con> | <lst> | <prm> | <fun> | <void> <lst>= empty | (cons <val> <lst>) <fun>= (lambda (<var> ...<var>) <exp>) <exp>= <var> | <con> | <prm> | (<exp> <exp> ...<exp>) | (cond (<exp> <exp>) ...(<"
  • "We rewrite subexpressions in a left-to-right and top-to-bottom order. At each stage in the evaluation, we best start by underlining the subexpression that must be evaluated next."
  • "Scheme and many other languages typically provide built-in functions for comparing two structural values extensionally and intensionally. The corresponding Scheme functions are equal? and eq?. In Scheme, both functions are applicable to all values, whether mutators and selectors are accessible or hi"
  • "A variable is a placeholder that stands for an unknown quantity. Programs are Function Plus Variable Definitions"
  • "define-struct posn (x y)) When DrScheme evaluates this structure definition, it creates three operations for us, which we can use to create data and to program: make-posn, the CONSTRUCTOR, which creates posn structures; posn-x, a SELECTOR, which extracts the x coordinate; posn-y, also a selector, wh"
  • "The first category is that of variables, which are the names of functions and values. The second introduces constants: boolean, symbolic, and numeric constants. As indicated before, Scheme has a powerful number system, which is best introduced gradually by examples. The final category is that of pri"
目录
第一部分 简单数据的处理
第1章 学生、教师和计算机 3
第2章 数、表达式和简单程序 5
2.1 数和算术运算 5
2.2 变量和程序 6

显示全部
用户评论
编程的本质 :把一个量和另一个量相关联 把值代换名进行关系计算;应用excel的过程本身就是一种广义的编程过程。程序就是数量之间的关系,对于特定的输入求取结果,从算术计算到变成对结构体 表 树的计算;程序逐步求精:先设计核心,在增加功能;工程总是由视图和程序组件模型两个部分 辅助函数原则 对于在表述中所提到的或在进行实例计算中所发现的每种依赖关系都使用一个辅助函数进行明确表达
打印错误能少点么
很有营养的一本 思路清晰
归归赠书!拖拖拖终于看完了!
不实用
空谈理论, 而且是复杂的理论
醍醐灌顶
准确的说,应该叫:递归方法的深入剖析
下载
收藏