返回表的函数: 下面是一个求工资的函数: ;; wage : number  ->  number ;; to compute the total wage (at $12 per hour) ;; of someone who worked for h hours (define (wage h) (* 12 h)) 显示,只能求单个人的工资,我们相求多个人的工资,于是想传入一个list过去: ;; hours->wages : list-of-numbers  ->  list-of…
我们写代码时要学会适应辅助函数.作者提出了一个问题,如何对一个表排序.排序函数读取一个表,产生另一个表.排序函数的合约和用途如下: (sort empty) ;; expected value: empty (sort (cons 1297.04 (cons 20000.00 (cons -505.25 empty)))) ;; expected value: (cons 20000.00 (cons 1297.04 (cons -505.25 empty))) 完整程序:(实际上就是插入排序)…
由结构体组成的表与结构体中的表. 在用追溯形式建立家家谱树时,我们通常从某个后代除法,依次处理它的父母,组父母等.而构建树时,我们会不断添加谁是谁的孩子,而不是写出谁是谁的父母,从而建立一颗后代家谱树. 绘制后代数与绘制祖先树一样,只是将所有箭头的方向都反了过来: (define-struct parent (children name date eyes))children数量不固定,怎么办?自然的选择是另children代表由parent结构体组成的表,这个表代表孩子,parent是结构体:…
这是一个家族谱: ;child(define-struct child (father mother name date eyes)) #lang racket ;child (define-struct child (father mother name date eyes)) ;; Oldest Generation: (define Carl (make-child empty empty 'Carl 1926 'green)) (define Bettina (make-child em…
使用cons构造一个包含多个元素的表十分麻烦,因此scheme提供了list操作,该操作接受任意量的值作为输入以创建一个表,下面是扩展的语法: <prm>=list 扩展的scheme值的集合是: <val>=(list  <val> ....      <val>) 理解list表达式的一种简单方法是将它当做若干cons的简写,具体来说,就是(list exp1 expe2       .......... exp-n) 看成如下: (cons exp1…
第8章: 主要介绍了软件需求的类型.利益相关者,获取用户需求分析的常用方法与步骤.竞争性需求分析的框架NABCD,四象限方法以及项目计划和估计的技术. 1.软件需求:人们为了解决现实社会和生活中的各种问题而有求于软件 2.而作为软件团队,准确而全面地找到这些需求主要的步骤为: (1)获取和引导需 (3)验证需求 (2)分析和定义需求 (4)在软件产品的生命周期中管理需求 3.用户对软件的需求又分为:对产品功能性的需求:对产品开发过程的需求:非功能性需求:以及综合需求.所以软件团队和客户代表在需求…
第10章 系统级I/O 10.1 Unix I/O 一个Unix文件就是一个m个字节的序列:B0,B1,…,BK,…,Bm-1 Unix I/O:一种将设备优雅地映射为文件的方式,允许Unix内核引出一个简单.低级的应用接口,这使得所有的输入输出都能以一种统一且一致的方式来执行: 打开文件: 内核返回一个小的非负整数,叫做描述符. Unix外壳创建的每个进程开始时都有三个打开的文件:标准输入(描述符为0).标准输出(描述符为1).标准错误(描述符为2). 改变当前文件位置: 对于每个打开的文件,…
高性能Linux服务器 第10章    基于Linux服务器的性能分析与优化 作为一名Linux系统管理员,最主要的工作是优化系统配置,使应用在系统上以最优的状态运行.但硬件问题.软件问题.网络环境等的复杂性和多变性,使得对系统的优化变得异常复杂,如何定位性能问题出在哪个方面,是性能优化的一大难题.本章从系统人手,重点讲述由于系统软.硬件配置不当造成的性能问题,并且给出了检测系统故障和优化性能的一般方法和流程. 10.1  系统性能分析的目的 10.1.1  找到系统性能的瓶颈系统的性能是指操作…
Linux就这个范儿 第10章 生死与共的兄弟 就说Linux系统的开机.必须经过加载BIOS.读取MBR.Boot Loader.加载内核.启动init进程并确定运行等级.执行初始化脚本.启动内核模块.执行对应运行等级的初始化脚本.个性化设置.进入登录状态这十个步骤.怎么样?服气吧!如果觉得还不够直观,那么看一下图10.1 Linux系统启动流程吧. LVS的IPVS模块也是采用动态加载的方式 图10.1 Linux系统启动流程那关机是不是会省点事儿呢?不是!Linux的关机会涉及4个命令和4…
参考资料<ASP.NET MVC5 高级编程>第5版 第5章 表单和HTML辅助方法 5.1 表单的使用 5.1.1 action 和 method 特性 默认情况下,表单发送的是 HTTP Post 请求 EF 对于外键关系,数据库名称等也有约定.这些约定取代了以前需要提供给一个关系对象映射框架的所有映射和配置. GET 方法:GET 请求的所有参数都在URL中,因此可以为GET 请求建立书签. POST 方法:浏览器把输入值放入 HTTP 请求的主体中. 5.2 辅助方法 可以通过视图的H…