2021-01-08 日记

岳阳的天气真是奇怪,昨天空中还飘着鹅毛大雪,到了今天又是一轮艳阳从早照到晚,当然温度依旧很低,大概在3°~5°。

今天上午进行了SICP第一章第一节的阅读,英文原版挺难读的,不过对比一下糟糕的中文翻译,还是选择继续读原版。
下午打了一场球,非常爽!运动的感觉真是太美妙了,它可以令你忘却一切的烦恼,而专注于运动本身。

下面总结一下今天的学习情况:
第一章是关于如何构造过程抽象的讨论,而第一节介绍了一种Lisp方言——Scheme,这是一种函数式语言,而我之前使用的像C、C++、JAVA、Python等语言都是过程式的语言。由于式第一次接触函数式语言,我有些不习惯,因为函数式语言的思维方式与过程是语言式有着一定的差异的。不过随着自己打开Scheme解释器写了一些代码,这种不适也在渐渐消除。

在这一节中介绍了:

  • Expression 表达式
    介绍了Lisp表达式的构成;

  • Naming and Environment 命名与环境
    介绍了Lisp的命名方法与环境的概念,这个环境是指程序执行的上下文信息,比如当前待执行的程序语句调用了一个过程,那么这个过程就是环境中的一部分。

  • Compound Procedures 复合过程
    过程是可以嵌套的,Lisp编程的思路是:从基础的过程写起,不断向上抽象,最终将计算任务抽象成一个过程。

  • The Substitution Model for Procedure 过程计算的替换模型
    表达式有两种求值方式:应用序与正则序,应用序会先求子表达式的值再用其替换形参;而正则序会直接使用子表达式的body来替换形参。

  • Conditional Expression and Predicates 条件表达式与谓词
    介绍了cond, if等分支语句的使用。注意if语句使用的是正则序求值。

  • Example:Square Root by Newton's Method 牛顿方法求平方根
    介绍了牛顿渐进方法求解平方根与立方根。

  • Procedures as Black-Box Abstractions
    过程是对具体指令的抽象,它像一直黑箱子,接收输入并返回输出,它对使用者来说是透明的。

CS专业在读,热爱编程。
专业之外,喜欢阅读,尤爱哲学、金庸、马尔克斯。
原文地址:https://www.cnblogs.com/jmhwsrr/p/14253539.html