当前位置: 首页 > news >正文

lambda函数的特性

通过对过程的逐步抽象,不难看出过程可以演化为某种模式,因此在新的章节。我们将在数据上做同样的抽象。
此处引入数对的概念来表达有理数,即通过基础过程cons,表达一个有序的数对:(define x (cons n d))
通过该数对,可以完成对数据的抽象。

点击查看代码
;分数的加法
(define (add-rat x y)(make-rat (+ ( * (number x) (denom y)) ( * (number y) (denom x)))(* (denom x)(denom y)))
)
;简化分数
(define (gcd a b)(if (= b 0)a(gcd b (remainder a b))))
(define (number x)(let ((g (gcd (car x)(cdr x))))(/ (car x) g)))
(define (denom x)(let ((g (gcd (car x)(cdr x))))(/ (cdr x) g)))

序对的形式除了表达分数以外,还可以表达图形,例如通过坐标来表达线段两端的位置。

点击查看代码
;线段表达
(define (make-segment x1 y1 x2 y2)(start-segment x1 y1)(end-segment x2 y2)
)
;起点和终点的表达
(define (start-segment x y)(cons x y)
)
(define (end-segment x y)(cons x y)
)

在数据抽象的过程中,意外发现了lambda函数的一些特性,除了之前介绍的省略定义内容直接为某个变量构造函数的作用外,lambda还有以下特性:
1、lambda可以嵌套在其他lambda函数内部
根据练习2.4的要求,其定义了一个过程,

点击查看代码
(define (cons x y)(lambda (m) (m x y)))
(define (car z)(z (lambda(p q) p)))
要求验证对于任意的x、y,(car (cons x y))都将返回x 看到这个过程我觉得蛮不可思议的,但按照题目的要求进行代换看看: (car (cons x y)) ((lambda (m)(m x y))(lambda (p q) p )) ((lambda (p q) p) x y) ((lambda (x y) x) (x) 在这里,cons返回一个lambda函数,这个lambda函数接受一个参数,然后将参数作用于(x y)。car接受一个参数,并将其作用于另一个lambda过程。 但两者连接在一起,就变成car接受了cons的lambda函数并作用与另一个lambda函数。 就像((lambda (x) (+ x 4)) 5 )这一过程会返回9一样,对于cons来说,m就是(lambda(p q) q ) 很有意思,这让我对数据结构有了另类的认识,数据和过程并非泾渭分明,而是可以互相渗透的。
http://www.jsqmd.com/news/62924/

相关文章:

  • 2025全包装修公司哪家好?最新权威推荐榜单,中高端装修必看
  • 2025年贵州装修公司权威推荐榜首:黔派装饰以匠心工艺与全周期服务
  • 2025年整装公司权威推荐榜单:黔派装饰以匠心重构贵州家装新标准
  • 2025年新房装修公司推荐:黔派装饰引领品质家居新标准
  • 2025年大众途观L更换轮胎推荐:TOP10轮胎权威榜单解析
  • 2025年重庆五大梁山鸡餐厅排行榜,地道美食品牌推荐
  • 2025年重庆南坪板栗鸡店推荐:南坪吃板栗鸡有推荐吗
  • 微信工具类
  • 探秘C#伪随机数生成器的安全漏洞与破解之道
  • 从卡顿到秒查:Java 工程引入 Elasticsearch 搭建亿级地址数据的复杂查询实战
  • 随笔
  • 2025年河南五大源头电线电缆厂家排行榜,电线电缆实力供应商
  • 2025年度重庆必吃江湖菜排名TOP5!重庆李子坝梁山鸡
  • 2025年安检机厂家找哪家,行业内安检机聚焦技术实力与行业适配性
  • 祝贺朱雀三号首飞成功入轨!国产时序数据库 IoTDB 助力火箭试验
  • 取得Gridview的指定某一列的值
  • 雅思报班终极参考:2025年5大实力机构深度测评(附封闭班详情)
  • 口碑好的浙江省全日制专升本机构推荐:口碑不错的专升本机构有哪
  • 告别SAT备考迷茫!2025年实力派SAT辅导机构深度全解析
  • 2025年市场最好的电动推杆微动开关厂商怎么选择,电动推杆微动开关/大型微动开关/新能源微动开关/鼠标微动开关产品哪里有
  • DP1323EL的电动车解锁方案:超高速读写,提升电动车一键解锁体验
  • 高级语言程序设计第八次作业
  • debian10安装QT
  • iOS 基于 Foundation Model 构建媒体流 - 教程
  • 2025年国内可靠的河道护坡石笼网源头厂家找哪家,抗冲击抗腐蚀石笼网/柔韧抗压石笼网/双隔板石笼网/六角石笼网河道护坡石笼网源头厂家口碑推荐
  • 2025 AI软件引流获客公司TOP5口碑推荐:专业排行助企
  • 蓝凌aiOA引领中国协同办公创新,用LanBots.AI助力企业智能体落地
  • 2025年国内知名的微动开关工厂口碑推荐,家电微动开关/大型微动开关/鼠标微动开关/小型微动开关/防水微动开关定制厂家怎么选择
  • 2025年最新水处理设备厂家精选:五家企业以净水实力脱颖而出
  • i dont study in mathematics but I wear glasses in 20s