练习 2.6

原创 2016年05月31日 22:04:26
#lang racket

;: zero 是一个函数,这个函数,接收一个参数,
;: 再返回一个函数 zero-b 此函数接收一个参数,并直接返回这个参数
(define zero (lambda (f) (lambda (x) x)))
;: 测试
;:((zero 3) 2) ;: => 2

;: +1 函数
;: 是一个函数,接收一个参数 n
;: 再返回一个函数 add-1-b 此函数接收一个函数 f
;:    返回一个新函数 add-1-c 此函数接收一个函数 x
;:        调用此函数,会(f ((n f) x))
(define (add-1 n)
  (lambda (f) (lambda (x) (f ((n f) x)))))
;: 定义one
;:(define one (add-1 zero))
;:(add-1 zero)
;:(lambda (f) (lambda (x) (f ((zero f) x))))
;:(lambda (f) (lambda (x) (f
;:                         ((zero f) x) ;: 这句返回x
;:                         )))

;:(lambda (f) (lambda (x) (f x)))
;: 所以这就是 one 的定义
(define one (lambda (f) (lambda (x) (f x))))
;: 定义解释: 一个函数,参数是另一个函数f,返回一个函数one-b;
;: 调用one-b 输入参数 x, 最终结果是 (f x)
;: ((one (lambda (x) (display x))) 1)

;: two 的定义
(add-1 one)
(lambda (f) (lambda (x) (f
                         ((one f) x) ;: => (f x)
                         )))
;: 所以 two的定义是
(lambda (f) (lambda (x) (f (f x))))
;: three
(lambda (f) (lambda (x) (f (f (f x)))))
;: four
(lambda (f) (lambda (x) (f (f (f (f x))))))

;: +法的定义就是 加几,就多几个 (f ) 次调用
(define + (a b)
  (lambda (f) (lambda (x)
                (f (f (f ;: a 次 f
                       (f ( f (f ;:... b 次f 
                               x)
                              ))))))))
版权声明:知行合一

C++[pp]--课后练习与答案--2.6

1.C++ 程序的模块叫什么? 答案:函数 函数(function) 分为有返回值和无返回值 格式:type functionname (argumentlist) { state...

数据结构与算法分析Java版练习2.3,2.4,2.5,2.6和2.7

[RTT例程练习] 2.6 互斥锁 mutex

互斥锁是一种保护共享资源的方法。当一个线程拥有互斥锁的时候,另一个线程若是等待锁,则其就会被挂起,从而保证只有一个线程会操作共享数据。 这里的例子同样有静态锁和动态锁,其差别同之前一样,仅仅是创建和...
  • lyyyuna
  • lyyyuna
  • 2013年03月11日 21:52
  • 1925

Linux 2.6 menuconfig内核编译配置选项详解

转自:http://blog.csdn.net/zhengmeifu/article/details/7708386 Code maturity level options 代码成熟度选项 Pr...

Linux 2.6内核配置说明(5----Processor type and features中央处理器(CPU)类型及特性)

Symmetric multi-processing support 对称多处理器支持,如果你有多个CPU或者使用的是多核CPU就选上.此时"Enhanced Real Time Clock S...

启动hadoop 2.6遇到的datanode启动不了

http://blog.csdn.net/zhangt85/article/details/42078347 查看日志如下: 2014-12-22 12:08:27,264 INFO ...

算法与数据结构--实现线性表的合并操作(合并后按非递减排列)--算法2.6

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:顺序表的合并...

saiku 2.6 源码整合(无maven情况下)

工具: MyEclipse 10saiku2.5源码saiku-server-foodmart-2.5.zip 操作步骤: 在MyEclipse中新建一个web项目,名为saiku(必须名...

Linux 2.6 内核中的电源管理技术综述

 前言  本系列文章将结合近年来不断在各种硬件(包括 CPU、芯片组、PCI Express 等各种最新总线标准以及外设)上新增的节能技术。      从 Linux® 2.6内核及整个 softwa...

hadoop - hadoop2.6 分布式 - 集群环境搭建 - JDK安装配置和SSH安装配置与免密码登陆(集群中)

1.背景    我的搭建环境是 自己的笔记本(deepin linux 系统)+ Vriutal Box (3台 ubuntu 系统);                           网络...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:练习 2.6
举报原因:
原因补充:

(最多只允许输入30个字)