计算机程序的构造和解释 - 个人笔记(一)(上)

简介: 计算机程序的构造和解释 - 个人笔记(一)(上)

前言



为什么要学计算机程序的构造与解释


blog.zhaojie.me/2009/07/rec…  很老的一个帖子上的推荐

  • 了解任何东西,思想最重要
  • 抽象的思维,如何从简单到复杂
  • 用不同的角度去考虑用咒语来实现功能
  • 学习任何语言思想最重要的是思想本身,而scheme由于语言天生的自由性,可以极大的发挥程序员的思想空间
  • 学习思考问题的方式,以及解题思路

www.jianshu.com/p/0e6365f4b… 简书上面做的一个回答


一些感谢:


  1. 文科生学这个表表示虽然痛苦,但是会努力一步一步的学习
  2. 写出来是监督自己产出,这门语言非常深奥和困难,借助视频和书籍慢慢啃
  3. 一定要深入的理解黑盒抽象的思维,解题的思路大于题目本身的意义
  4. 持续更新,用文章输出来勉励和督促自己。


第一节课 上课笔记



计算机科学


  1. y^2 = x && y>= 0
  2. 亚历山大的连续平方根
  3. 知道规则不等于可以运用规则
  4. 复杂度控制
  1. 黑盒抽象
  2. 猜测->验证结果
  1. 寻找函数的不动点
  1. 输入
  2. 输出
  1. 线性组合的基本方法
  2. 构建大型程序
  1. OOP


黑盒抽象


网络异常,图片无法展示
|


元语言抽象


  1. 数据抽象:如何组合程序的基本元素,构造更复杂的结构
  2. 过程抽象:如何将复杂的结构抽象出高层组件,提供更高维度的组合型
  3. 模块化,通过高抽象层次的组织方法,提高系统的模块性


约定接口


  1. 对应计算机的输入与输出
  2. 使用黑盒不需要知道内部结构,只需要知道约定俗称的接口的功能


在进行正式SCIP学习之前,需要安装环境


1. 下载 DrRacket


直接访问:racket-lang.org/

找到自己对应的内容下载页面


网络异常,图片无法展示
|


2. 安装


下载完安装包之后,就可以进行安装操作了


网络异常,图片无法展示
|


注意不要安装在C盘,一般习惯是直接切换一个盘符,直接安装到D盘即可

安装好之后,你在桌面上可能找不到你要的东西,所以请查看一下你的开始菜单(MAC不了解,这里只能说明windows的地址,抱歉)


网络异常,图片无法展示
|


3. DrRacket

这个界面怎么说呢,如果你用过C语言的编辑器(没错就是老掉牙的那个),其实感觉还行,但是如果经常使用中文的菜单可能不习惯


网络异常,图片无法展示
|


没关系,在HELP里面,可以切换:


网络异常,图片无法展示
|


4. 安装 SICP Package


  1. 选择File -> Package Manger

网络异常,图片无法展示
|


  1. 在标红的地方,输入sicp


网络异常,图片无法展示
|


  1. 下载比较建议挂个梯子下载,需要访问github进行安装包的下载


网络异常,图片无法展示
|


  1. 安装成功之后,大概类似这种界面


网络异常,图片无法展示
|


5. 测试 SICP package 安装成功与否


  1. 首先在顶部输入#lang sicp然后run一下,如果看到下面的语言切换了,说明成功了。


网络异常,图片无法展示
|


  1. 接着输入如下的方法:


#lang sicp
(define (increase x) (+ x 1))
复制代码

网络异常,图片无法展示
|


  1. 文件夹管理的包:files-viewer,类似插件,安装方式如下:


网络异常,图片无法展示
|

相关文章
|
存储 安全 数据管理
新型数据库技术:基于区块链的分布式数据存储系统
传统数据库系统面临着中心化管理、数据安全性和可信度等方面的挑战。本文介绍了一种基于区块链技术的新型数据库系统,通过分布式存储和去中心化的特性,提高了数据的安全性和可信度,同时实现了高效的数据管理和共享。该系统在多个领域如金融、医疗和物联网等具有广阔的应用前景。
|
开发工具 git
Git添加子模块(submodule)
Git添加子模块(submodule)
999 0
|
程序员 开发工具 Docker
13个程序员常用开发工具用途推荐整理
13个程序员常用开发工具用途推荐整理
350 0
|
自然语言处理 数据可视化 算法
第5章 数据可视化——5.4 四维图形可视化
第5章 数据可视化——5.4 四维图形可视化
|
存储 缓存 NoSQL
常用分布式锁及注意事项
常用分布式锁及注意事项
309 0
|
9月前
|
数据采集 存储 缓存
Python爬虫与代理IP:高效抓取数据的实战指南
在数据驱动的时代,网络爬虫是获取信息的重要工具。本文详解如何用Python结合代理IP抓取数据:从基础概念(爬虫原理与代理作用)到环境搭建(核心库与代理选择),再到实战步骤(单线程、多线程及Scrapy框架应用)。同时探讨反爬策略、数据处理与存储,并强调伦理与法律边界。最后分享性能优化技巧,助您高效抓取公开数据,实现技术与伦理的平衡。
479 4
|
人工智能 自然语言处理 Java
Spring Cloud Alibaba AI 入门与实践
本文将介绍 Spring Cloud Alibaba AI 的基本概念、主要特性和功能,并演示如何完成一个在线聊天和在线画图的 AI 应用。
3559 8
|
缓存 网络协议 前端开发
Web 性能优化|了解 HTTP 协议后才能理解的预加载
本文旨在探讨和分享多种预加载技术及其在提升网站性能、优化用户体验方面的应用。
Web 性能优化|了解 HTTP 协议后才能理解的预加载
|
文字识别 数据可视化 项目管理
2024年知识管理软件评测:哪款工具最适合初创团队提升工作效率?
本文评测了8款适合初创企业的知识管理软件,包括板栗看板、Notion、Confluence、Evernote Business、Slack、Miro、Trello和Airtable。这些工具不仅支持高效的团队协作,还具备强大的信息管理功能,帮助企业在快速成长的过程中保持信息的有序和共享。初创企业可根据自身需求选择最适合的工具,提升团队效率。
 2024年知识管理软件评测:哪款工具最适合初创团队提升工作效率?
|
人工智能 搜索推荐 算法
人工智能,应该如何测试?(七)大模型客服系统测试
这篇文稿讨论了企业级对话机器人的知识引擎构建,强调了仅靠大模型如 GPT 是不够的,需要专业领域的知识库。知识引擎的构建涉及文档上传、解析、拆分和特征向量等步骤。文档解析是难点,因文档格式多样,需将内容自动提取。文档拆分按语义切片,以便针对性地回答用户问题。词向量用于表示词的关联性,帮助模型理解词义关系。知识引擎构建完成后,通过语义检索模型或问答模型检索答案。测试环节涵盖文档解析的准确性、问答模型的正确率及意图识别模型的性能。整个过程包含大量模型组合和手动工作,远非简单的自动化任务。