- 博客(10)
- 资源 (7)
- 收藏
- 关注
原创 Scheme:Y combinator
Y combinator、Y组合子。λ表达式都是匿名函数,那么丘奇的λ演算如何定义递归呢?递归通常指一个函数直接或间接地调用自身,名字都没有,怎样调用?不动点组合子/Y combinator从理论上解决这个问题。一个简单的求阶乘的函数(可以写任意的一个递归函数为例):(define factorial (lambda (n) (if (= n 0) ...
2016-05-11 04:55:41 947
原创 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 1324
原创 什么是currying/柯里化
闭包,它在支持函数柯里化的编程语言,天然存在的概念。柯里化/currying,指将多元函数转化为多个一元函数连续定义。
2016-05-10 00:15:38 3381
原创 高阶函数之函数作为参数
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 1592
原创 [SICP]函数定义
接学习函数式编程,从了解变量开始(Scheme之变量)以丘奇的λ演算为根基的函数式语言,函数是重要的程序单元。例如λx.( x+1),即“对于参数x,(计算)x+1”。Scheme中,使用lambda表达式定义函数,重点为函数的形式参数列表(formal arguments list)和函数体。格式为:(lambda ( arguments ) (body))1. la...
2016-05-07 17:40:10 1020
原创 C语言教程的老掉牙的写法
一个法官用老法律判案,必然荒唐。C语言教程中,存在许多类似的问题,因为它们参考的还是ANSI C(通常叫C89)。现在有C99和C11,怎么办?
2016-05-03 17:50:38 1636
原创 Android远程服务例程
一个Android远程服务例程。在例子中涉及的原理或其他知识,请自行搜索。在Android系统中,每个应用程序都运行在自己的进程中。跨进程的服务称为远程服务。其原理类似Java 的Remote Method Invocation/RMI ,参考远程方法调用RMI初步 。Android远程服务遵循服务器-客户端模型。因此服务器-客户端之间的协议,可以用Java接口封装。在RM
2016-05-03 00:22:54 874
junit-4.8.2-sources.jar
2014-10-07
编程导论_codes_2013.4.1
2014-08-01
Type Systems
2008-11-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人