编程语言=组合简单形成复杂的工具

  • 简单的声明和表达式
  • 简单元素之间的组合方式
  • 组合后元素的抽象方式

程序=数据+函数

  • 数据是我们要处理的内容
  • 函数是我们处理数据的方式

函数式与中缀式

  • 函数式不会出现歧义
  • 函数式可以无限嵌套且便于理解

表达式的嵌套

  • 评估运算符和操作数子表达式

    • 若要完成评估则必须完成评估子表达式--递归
  • 将运算符子表达式的值应用于参数(操作数子表达式)

要计算他的根,首先要计算他的分支,所以我们可以想象,各个内部节点的值是由叶子节点开始向上渗透的

纯函数与非纯函数

  • 纯函数:得到一个输入,返回一个输出值,不做其他改变

    • 通过这种方式产生的复合表达式更可靠
    • 更易于测试
  • 非纯函数:得到一个输入值,除了返回值,还产生其他结果

SICP-Elements of program的更多相关文章

  1. PTA Sort Three Distinct Keys

    Suppose you have an array of N elements, containing three distinct keys, "true", "fal ...

  2. OpenCL学习笔记(三):OpenCL安装,编程简介与helloworld

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入. OpenCL安装 安装我不打算 ...

  3. Arrays 001

    1.1 Array Initalization First of all, we need know Java arrays is static. When the array is initiali ...

  4. 解析ansible远程管理客户端【win终端为例】

    一.前提: 1.1.windows机器开启winrm服务,并设置成允许远程连接状态 具体操作命令如下 set-executionpolicy remotesigned winrm quickconfi ...

  5. [转载]Core Elements of a Program

    原文链接 http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00sc-introduction-to-c ...

  6. SICP 阅读笔记(二)

    Chapter 1: Building Abstractions with Procedures 2015-09-29 016 Preface of this chapter QUOTE: The a ...

  7. SICP— 第一章 构造过程抽象

    SICP  Structure And Interpretation Of Computer Programs 中文第2版 分两部分  S 和 I 第一章 构造过程抽象 1,程序设计的基本元素 2,过 ...

  8. Program A-归并排序

    Description In this problem, you have to analyze a particular sorting algorithm. The algorithm proce ...

  9. [转] 編程風格要素-The Elements of Programming Style 中文英文中英對照

    转自: http://www.loliman3000.com/tech/2fe33ce32906f0302412881.php 下面的程序風格規則提煉自Brian Kernighan和P. J. Pl ...

  10. Calling Lua From a C Program

    Introduction From a running C program, you can call a Lua script. The C program can pass arguments t ...

随机推荐

  1. 微信小程序,前端大梦想(五)

    微信小程序之综合应用-访问网络加载数据 移动端访问网络加载数据时必不可少的功能,本章将接入豆瓣电影API,以列表的形式展现数据,支持下拉刷新及点击查看详情.重点包括: l 访问网络 l 跳转画面及传参 ...

  2. angularjs 路由模块

    1. <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title& ...

  3. iOS 自动构建套件 - flow.ci + fir.im + Coding

    编者按:本文转载自 flow.ci 用户 GitHub@mzying2013 的实践分享,原文链接这里. 前言 相信很多最开始接触自动构建都是从 Jenkins 开始的.都是纯手工搭建,本地代码创库也 ...

  4. JavaScript知识点整理 (二)

    1)函数概述 1.函数是一块 JS 代码,被定义一次,但可以执行和调用多次. JS 中的函数也是对象,所以 JS 函数可以像其它对象那样操作和传递,所以也常叫 JS 中的函数为函数对象. 2.函数也是 ...

  5. Gulp和webpack的区别,是一种工具吗?

    疑问:gulp和webpack 什么关系,是一种东西吗?可以只用gulp,不用webpack吗 或者反过来? 它们的区别和概念 ------------------------------------ ...

  6. CATransition 转场动画解析

    http://blog.csdn.net/mad2man/article/details/17260901

  7. Unity C# 一些关于Camera的心得!

    本文原创,转载请注明出处:http://www.cnblogs.com/AdvancePikachu/p/6856374.html 首先,总结了下最近工作中关于摄像机漫游的功能, 脚本如下: Tran ...

  8. web基础之会话技术

    一.会话技术之Cookie Cookie技术是将数据存储到客户端 1.怎样去向客户端写出一个cookie 1)创建Cookie对象 Cookie cookie = new Cookie(name,va ...

  9. 【JS中循环嵌套常见的六大经典例题+六大图形题,你知道哪几个?】

    首先,了解一下循环嵌套的特点:外层循环转一次,内层循环转一圈. 在上一篇随笔中详细介绍了JS中的分支结构和循环结构,我们来简单的回顾一下For循环结构: 1.for循环有三个表达式,分别为: ①定义循 ...

  10. 1.Java 加解密技术系列之 BASE64

    Java 加解密技术系列之 BASE64 序号 背景 正文 总结 序 这段时间,工作中 用到了 Java 的加解密技术,本着学习的态度,打算从这篇文章开始,详细的研究一番 Java 在加解密技术上有什 ...