
Scheme
文章平均质量分 84
Scheme编程语言
yqj2065
《编程导论(Java)》作者
展开
-
OOD-Scheme代码集
OOD学习用的Scheme代码原创 2020-10-15 13:16:27 · 464 阅读 · 0 评论 -
函数式编程之根-拉姆达运算/演算(λ-calculus)
学习函数式编程的大图(big map)/鸟瞰图原创 2016-05-08 14:38:26 · 12704 阅读 · 0 评论 -
[SICP]第一章构造过程抽象( 综述)
功能抽象是对计算过程的抽象,或者说,是对可执行代码的抽象。原创 2016-06-03 23:45:02 · 775 阅读 · 0 评论 -
学习函数式编程,从了解变量开始(Scheme之变量)
Scheme与C系列语言的一个重大差异,在于对变量(variable)的理解和处理。原创 2016-05-07 13:41:29 · 2800 阅读 · 0 评论 -
[SICP] 求值规则与惰性求值
《编程导论(Java)•第3章功能抽象》Vs.《SICP•第一章构造过程抽象》原创 2015-07-18 14:07:33 · 1346 阅读 · 0 评论 -
什么是currying/柯里化
闭包,它在支持函数柯里化的编程语言,天然存在的概念。柯里化/currying,指将多元函数转化为多个一元函数连续定义。原创 2016-05-10 00:15:38 · 3422 阅读 · 0 评论 -
Scheme:Y combinator
Y combinator、Y组合子。λ表达式都是匿名函数,那么丘奇的λ演算如何定义递归呢?递归通常指一个函数直接或间接地调用自身,名字都没有,怎样调用?不动点组合子/Y combinator从理论上解决这个问题。一个简单的求阶乘的函数(可以写任意的一个递归函数为例):(define factorial (lambda (n) (if (= n 0) ...原创 2016-05-11 04:55:41 · 974 阅读 · 0 评论 -
高阶函数之函数作为参数
SICP 1.3.1 Procedures as Arguments,说明高阶函数之函数作为参数的原因:若干个函数拥有相似的算法或代码结构,对此加以抽象。(define (sum-integers a b) (if (> a b) 0 (+ a (sum-integers (+ a 1) b))))(define (pi-sum a b) (i原创 2016-05-08 21:55:01 · 1641 阅读 · 0 评论 -
【SICP】笔记目录
SICP学习笔记目录原创 2015-07-12 04:12:38 · 1315 阅读 · 1 评论 -
5.1自引用模型
丘奇数的含义原创 2015-07-30 17:59:34 · 4285 阅读 · 2 评论 -
[Scheme]基本语法和内置函数
(数据、函数、操作、表达式)原创 2015-07-12 06:40:08 · 2431 阅读 · 0 评论 -
[SICP]函数定义
接学习函数式编程,从了解变量开始(Scheme之变量)以丘奇的λ演算为根基的函数式语言,函数是重要的程序单元。例如λx.( x+1),即“对于参数x,(计算)x+1”。Scheme中,使用lambda表达式定义函数,重点为函数的形式参数列表(formal arguments list)和函数体。格式为:(lambda ( arguments ) (body))1. la...原创 2016-05-07 17:40:10 · 1066 阅读 · 0 评论 -
[SICP] 什么是数据抽象
数据抽象(Data abstraction)是指将数据类型的抽象特征与其实现的具体细节清晰地分离。数据抽象是Parnas原则/接口与实现分离原则在类型层面(以及对象技术中)的推广,数据抽象的手段是自定义出数据类型并完成封装。——0.1.3数据抽象原创 2015-07-18 17:12:11 · 2064 阅读 · 0 评论 -
SICP-Exercise 1.5
Exercise 1.5. Ben Bitdiddle has invented a test to determine whether the interpreterhe is faced with is using applicative-order evaluation or normal-orderevaluation. He defines the following two proc原创 2015-07-17 19:46:15 · 1138 阅读 · 0 评论 -
SICP-Exercise 1.9
Exercise 1.9,1.10原创 2015-07-18 08:58:14 · 915 阅读 · 0 评论 -
SICP-Exercise 1.6
if采用正则序。原创 2015-07-18 00:12:46 · 866 阅读 · 0 评论 -
SICP不是我的菜
看了一段时间SICP,发现它不是我的菜。原创 2015-07-25 15:03:58 · 1156 阅读 · 0 评论 -
Scheme之功能分解和封装内部函数/块结构
待解决的问题:输出0-x之间 3的倍数而且含5的数,如15,54,555等等(或者输出这种数的个数)。在《编程导论(Java)》中以这个例子介绍结构化分解。所以用Scheme实现一下。package semantics.method;public class HelperMethodDemo{ //简单情况:输出0-x 之间 3的倍数而且含5的数. ////// pr原创 2016-05-10 22:11:27 · 1376 阅读 · 0 评论 -
[SICP]数据意味着什么?
What Is Meant by Data?何谓数据、数据意味着什么?《SICP•2.1 数据抽象简介·2.1.3数据意味着什么?》,yqj2065表示没有看懂,。一本大学入门的教材,有什么看不懂的?其实,我真的不知道作者为什么要这样写!1.数据 Vs. 函数从汇编语言开始,我们知道“正是这种简单的代码“MOV AX,1234H”刻画出程序的最为底层的构造单元:指令和数据”。按...原创 2016-06-19 16:01:33 · 903 阅读 · 0 评论 -
SICP1.2-递归、尾递归 VS. 迭代
为什么纯函数式编程语言如Scheme要用递归而且能够用递归呢?原创 2016-06-08 01:38:20 · 1554 阅读 · 0 评论 -
Scheme:点对(dotted pair,或pair)
Java中,除了基本类型,其他类型都属于类/接口类型。从讨论数据抽象的角度看,基本类型是更适合的标的物,因为从Java虚拟机规范和Java虚拟机实现层面,基本类型有了有效的接口与实现分离。而类/接口类型的数据抽象,通常我们介绍封装、信息隐藏和类的接口等概念,它们说明Java类作为数据抽象,用户需要了解的是类的接口。Scheme中,我们可以从基本类型构造新数据类型,换言之,我们可以赤裸裸地观察新原创 2015-07-17 16:06:06 · 2010 阅读 · 0 评论