- 博客(24)
- 收藏
- 关注
原创 SICP 1.16-1.19
习题1.16(define (fast-expt b n) (define (fast-expt-iter result b n) if (
2016-08-31 18:11:47 442
原创 SICP 1.14-1.15
习题1.14 习题1.15(define (cube x) (* x x x))(define (p x) (- (* 3 x) (* 4 (cube x))))(define (sine angle) (if (not (> (abs angle) 0.1)) angle (p (sine (/ angle 3.0)))))参照: a) Each tim
2016-08-31 17:48:11 543
原创 SICP 1.11-1.13
习题1.11 1.递归算法(define (f n) (if ( n 3) n (+ (f (- n 1)) (* 2 (f (- n 2))) (* 3 (f (- n 3))))))2
2016-08-31 15:10:05 548
原创 SICP 1.09-1.10
习题1.9(define (+ a b) (if (= a 0) b (inc (+ (dec a) b))))(+ 4 5)(inc (+ 3 5))(inc (inc (+ 2 5)))(inc (inc (inc (+ 1 5))))(inc (inc (inc (inc (+ 0 5)))))(inc (inc (inc (inc 5))))(
2016-08-31 13:43:52 953
原创 SICP 1.01-1.05
习题1.110=> 10(+ 5 3 4) => 12(- 9 1) => 8(/ 6 2) => 3(+ (* 2 4) (- 4 6)) => 6 (define a 3)a=> 3(define b (+ a 1)) b=> 4(+ a b (* a b)) => 19(= a b) => #f(if (and (> b a) (< b (* a b))) b
2016-08-30 16:10:39 582
翻译 Gambit 4.运行时选项
无论gsi和gsc以及可执行程序的编译和使用链接,都是通过’-:’选项来为运行时系统提供参数。参数之间是用逗号隔开,中间不能有空格。参数说明: mHEAPSIZE 设置最小堆大小,单位KB。 hHEAPSIZE 设置最大堆大小,单位KB。 lLIVEPERCENT 设置垃圾回收后,堆得占用量。 s 选择标准的Scheme模式。 S
2016-08-30 15:13:04 450
原创 Makefile选项CFLAGS,LDFLAGS,LIBS
CFLAGS 表示用于 C 编译器的选项, CXXFLAGS 表示用于 C++ 编译器的选项。 这两个变量实际上涵盖了编译和汇编两个步骤。[CFLAGS]:指定头文件(.h文件)的路径,如:CFLAGS=-I/usr/include -I/path/include。同样地,安装一个包时会在安装路径下建立一个include目录,当安装过程中出现问题时,试着把以前安装的包的include目
2016-08-30 14:43:29 327
翻译 Gambit 3.Gambit编译器
概要:gsc [-:runtimeoption,…] [-i] [-f] [-v] [-prelude expressions] [-postlude expressions] [-dynamic] [-exe] [-obj] [-cc-options options] [-ld-options-prelude options] [-ld-options options]
2016-08-30 09:56:17 714
翻译 Gambit 2.Gambit解释器
gsi [-:runtimeoption,…] [-i] [-f] [-v] [[-] [-e expressions] [file]]…2.1交互模式 交互模式是一个”读-执行-打印 循环(read-eval-print loop)” 简称REPL。输入和输出通过交互信道进行相互作用。交互通道可以通过运行时选项来指定,如果没有指定,取决于系统的默认配置。默认情况下,’(curr
2016-08-29 16:45:32 784
翻译 Gambit 1.Gambit环境
Gambit系统完整的实现了R4RS,R5RS和IEEE Scheme标准。它包含两个主要程序: gsi Gambit Scheme解释器(interpreter) gsc Gambit Scheme编译器(compiler)Gambit编译器生成可移植的C代码,使得整个Gambit系统和它编译的程序可以轻松地移植到许多支持C编译器的机器架构上。Gambit编译器生成的可执
2016-08-29 15:34:58 806
转载 Linux命令 gcc
转载: Linux GCC常用命令 1.简介GCC本意为GNU C Compiler,经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言;它现在还支持 Ada 语言、C++ 语言、Java 语言、Objective C 语言、Pascal 语言、COBOL语言,以及支持函数式编程和逻辑编程的 Mercury 语言,等等。而 GCC 也不再单只是 GNU C 语言编译器的意思了,而是变成了GNU
2016-08-29 13:55:03 413
转载 Linux命令 ldd
转载: Linux中的ldd命令和pvs命令 ldd命令用于判断某个可执行的 binary 档案含有什么动态函式库。 参数说明: –version 打印ldd的版本号 -v –verbose 打印所有信息,例如包括符号的版本信息 -d –data-relocs 执行符号重部署,并报告缺少的目标对象(只对ELF格式适用) -r –function-relocs 对目标对象和函数执行重
2016-08-29 13:23:58 677
原创 Scheme R5RS 5.程序结构
程序Scheme程序由一系列表达式,定义和语法定义组成。 出现在程序最高层的定义和语法定义可被解释为声明,它们是在最高层环境创建绑定,或者改变已有的最高层绑定的值。 出现在程序最高层的表达式被解释为命令,当程序被调用或被加载时,它们按顺序执行,通常会完成某些初始化的工作。定义 定义只能出现在程序<program>的最高层或<body>的开头。定义的形式:1. (define <
2016-08-26 18:33:42 838
转载 Linux命令 pkg-config
你在 Unix 或 Linux 下开发过软件吗?写完一个程序,编译运行完全正常,在你本机上工作得好好的,你放到源代码管理系统中。然后,告诉你的同事说,你可以取下来用了。这时,你长长的出了一口气,几天的工作没有白费,多么清新的空气啊,你开始飘飘然了。“Hi,怎么编译不过去?”你还沉浸在那种美妙的感觉之中,双臂充满着力量,似乎没有什么问题能难倒你的。正在此时,那个笨蛋已经冲着你嚷开了。“不会吧,我这边好
2016-08-25 17:37:46 583
转载 Lisp之根源
转载: Lisp之根源约翰麦卡锡于1960年发表了一篇非凡的论文,他在这篇论文中对编程的贡献有如欧几里德对几何的贡献.他向我们展示了,在只给定几个简单的操作符和一个表示函数的记号的基础上, 如何构造出一个完整的编程语言. 麦卡锡称这种语言为Lisp, 意为List Processing, 因为他的主要思想之一是用一种简单的数据结构表(list)来代表代码和数据. 值得注意的是,麦卡锡所作的发现,不仅
2016-08-25 17:05:26 548
转载 プログラミング言語 Scheme の解説
转载: プログラミング言語 Scheme の解説1.規格プログラミング言語 Scheme の規格は Revisedn Report on Algorithmic Language Scheme と呼ばれる文書で提供されている。 略して RnRS と記述されることが多い。 n の箇所は版の番号が入り、例えば現時点の最新版であれば R7RS ということになる。その他、公式な規格とは別に SRFI や E
2016-08-25 15:41:26 845
转载 Scheme
转载: 维基百科 Scheme是一种函数式编程语言,是Lisp的两种主要方言之一(另一种为Common Lisp)。不同于Common Lisp,Scheme遵循极简主义哲学,以一个小型语言核心作为标准,加上各种强力语言工具(语法糖)来扩展语言本身。麻省理工学院与其他院校曾采用Scheme教授计算机科学入门课程。著名的入门教材《计算机程序的构造和解释》(SICP,或称“魔法书”)利用Scheme来
2016-08-25 12:50:59 7056
原创 Scheme R5RS 4.表达式
表达式类型分为基本类型和派生类型两种. 1. 基本表达式类型包括变量和过程调用. 2. 派生表达式类型在语义上不是基本类型,但可以被定义为宏.基本表达式类型变量引用由一个变量构成的表达式是变量引用. (define x 28)常量表达式(quote 〈datum〉) 可简写为 ‘〈datum〉 数值常量,字符常量,字符串常量和布尔常量的值是”它们自身”. 〈datu
2016-08-24 19:20:24 724
原创 Scheme R5RS 3.基本概念
变量 , 语法关键字一个标识符可以命名一个语法类型,或命名一个值的存储位置.命名某语法类型的标识符被称为语法关键字,也就是说它与该语法绑定在一起. 命名某存储位置的标识符被称为变量,即它与该存储位置绑定在一起.绑定结构某些表达式类型可用于创建新的语法种类,并将语法关键字绑定到新语法.另一些表达式类型可用于创建新的存储位置,并将变量绑定到那些存储位置.这些表达式类型被称为绑定结构.最基本的
2016-08-24 17:55:23 967
转载 Linux命令 strace
简介 strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。输出参数含义root@ubuntu:/usr# strace cat /dev/
2016-08-24 17:12:00 240
原创 Scheme R5RS 1.概论
语义语法Scheme 是一种静态作用域的程序设计语言.对变量的每一次使用都对应于该变量在词法上的一个明显的绑定. Scheme 中采用的是隐式类型而非显式类型.类型与值 (也称对象)相关联,而非与变量相关联.Scheme 的实现必须支持严格尾递归.Scheme 过程在本质上都是对象.Scheme 过程的参数总以值的方式传递,即无论过程是否需要实参的值,实参表达式都会在过程获得控制权之前被求
2016-08-24 16:52:16 567
原创 Scheme R5RS 2.词法约定
词法约定除了在字符和字符串常量中以外, Scheme 从不区分字 母的大小写形式. 例如, Foo 和 FOO 是相同的标识符, #x1AB 和 #X1ab 是相同的数值. 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写
2016-08-24 15:27:44 426
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人