自1984 年出版以及 1996 年的第二版以来,SICP 已被世界各地的大学和学院采用为教材,包括新加坡国立大学(NUS),该校于 1997 年引入了基于 SICP 的入门课程 CS1101S。在 1990 年代中期,Python、JavaScript 和 Ruby 等语言出现,它们与 Scheme 共享核心设计元素,但采用了更复杂的面向语句的语法,使用熟悉的代数(中缀)...
自1984 年出版以及 1996 年的第二版以来,SICP 已被世界各地的大学和学院采用为教材,包括新加坡国立大学(NUS),该校于 1997 年引入了基于 SICP 的入门课程 CS1101S。在 1990 年代中期,Python、JavaScript 和 Ruby 等语言出现,它们与 Scheme 共享核心设计元素,但采用了更复杂的面向语句的语法,使用熟悉的代数(中缀)...
有效的程序合成还需要组织原则,可以指导我们制定程序的整体设计。特别是,我们需要策略来帮助我们结构大型系统,使它们成为模块化,也就是说,它们可以被“自然地”划分为可以单独开发和维护的连贯部分。 一种强大的设计策略,特别适用于构建用于建模物理系统的程序,是基于被建模系统的结构来构建程序的结构。对于系统中的每个...
原文:3 Modularity, Objects, and State 译者:飞龙 协议:CC BY-NC-SA 4.0 变化中安宁 (即使它在变化,它仍然保持不变。)——赫拉克利特 变化越大,越是相同。 ——阿方斯·卡尔前面的章节介绍了构成程序的基…
NUS CS1101S:SICP JavaScript 描述:四、元语言抽象(5) 过滤器 not语法形式由第 4.4.2 节中概述的方法处理。我们尝试扩展输入流中的每个框架以满足被否定的查询,并且只有在不能扩展时才将给定框架包含在输出流中。 function negate(exps, frame_stream) {return stream_flatmap(frame =>is_null(evaluate_query...
NUS CS1101S:SICP JavaScript 描述:四、元语言抽象(2) 练习4.4 回想一下,从第 1.1.6 节中得知,逻辑组合操作&&和||是条件表达式的语法糖:逻辑连接expression[1] && expression[2]是expression[1] ? expression[2] : false的语法糖,逻辑析取expression[1] || expression[2]是expression[1] ? true : ...
:book: 【译】NUS CS1101s SICP JavaScript 描述. Contribute to apachecn/sicp-js-zh development by creating an account on GitHub.
NUS CS1101S:SICP JavaScript 描述:一、使用函数构建抽象 原文: 心灵的行为,其中它对简单的想法施加其力量,主要有以下三种:1.将几个简单的想法组合成一个复合的想法,从而形成所有复杂的想法。2.第二个是将两个想法,无论是简单的还是复杂的,放在一起,并将它们放在一起,以便一次看到它们,而不将它们合并成一个,...
当然,以这种方式求值程序将比直接在 JavaScript 中输入它们要花费更长的时间,因为涉及多个级别的模拟。 我们的程序由显式控制求值者机器求值,该机器由 JavaScript 程序模拟,JavaScript 解释器本身也在求值。 监控求值者的性能 模拟可以是指导求值者实施的强大工具。 模拟不仅使探索寄存器机器设计的变化变得容易,还可以监视...
这样的计算机,或者寄存器机,顺序执行操作指令,这些指令操作固定一组称为寄存器的存储元素的内容。典型的寄存器机指令将原始操作应用于一些寄存器的内容,并将结果分配给另一个寄存器。我们对寄存器机执行的过程的描述看起来非常像传统计算机的“机器语言”程序。但是,我们不会专注于任何特定计算机的机器语言,而是会检查几个...