张家界旅游网站官网网站目录不能访问

web/2025/10/3 23:09:38/文章来源:
张家界旅游网站官网,网站目录不能访问,新媒体运营工作内容,西安小程序外包什么是递归#xff1f; (define length(lambda (l)(cond((null? l) 0)(else (add1 (length (cdr l)))))))以上是length函数的实现用递归的形式计算出数据集合l的长度。 如果没有define这种赋值操作我们怎么定义length函数#xff1f;换句话说我们怎么使用匿名函数完成递归…什么是递归 (define length(lambda (l)(cond((null? l) 0)(else (add1 (length (cdr l)))))))以上是length函数的实现用递归的形式计算出数据集合l的长度。 如果没有define这种赋值操作我们怎么定义length函数换句话说我们怎么使用匿名函数完成递归。 (lambda (l)(cond((null? l) 0)(else (add1 (enternity (cdr l))))))这个匿名函数判断如果入参列表长度是0则返回0如果入参列表长度超过0则不会有结果返回所以这个匿名函数只能计算长度为0的列表的长度值为了方便称呼可以为其起名length0。 注enternity是无限递归函数不会有结果返回。实现见补充1。 (lambda (l)(cond((null? l) 0)(else (add1 (length0 (cdr l))))))因为无法使用length0这个名字所以讲length0替换成对应的匿名函数 (lambda (l)(cond((null? l) 0)(else (add1((lambda (l)(cond((null ? l) 0)(else (add1(enternity (cdr l))))))(cdr l))))))这个匿名函数可以称为length≤1因为它只能判断长度小于等于1列表。 根据这个规律还可以写出来length≤2 (lambda (l)(cond((null? l) 0)(else (add1((lambda (l)(cond((null ? l) 0)(else (add1((lambda (l)(cond(null ? l) 0)(else (add1 (enternity (cdr l)))))(cdr l))))))(cdr l))))))这样的代码可以一直写下去但是又无法确保写出来的函数一定够用。 通过观察可以发现每个匿名函数实现的功能都是入参列表出参列表长度所以可以给匿名函数起一个名字length。将length0做一些改变 (lambda (length)(lambda (l)(cond((null? l) 0)(else (add1 (length (cdr l)))))) enternity)再对length≤1做一些改变 (lambda (length)(lambda (l)(cond((null? l) 0)(else (add1 (length (cdr l)))))) (lambda (length)(lambda (l)(cond((null? l) 0)(else (add1 (length (cdr l)))))) enternity))通过这个方法还可以对length≤2进行修改 (lambda (length)(lambda (l)(cond((null? l) 0)(else (add1 (length (cdr l)))))) (lambda (length)(lambda (l)(cond((null? l) 0)(else (add1 (length (cdr l)))))) (lambda (length)(lambda (l)(cond((null? l) 0)(else (add1 (length (cdr l)))))) enternity)))通过引入length参数改造后的函数还是可以看到明显重复。 (lambda (length)(lambda (l)(cond((null? l) 0)(else (add1 (length (cdr l))))))这部分被重复了很多遍的函数入参是一个length函数实现的功能是生产一个length函数所以可以为其起名mk-length。 (lambda (mk-length)(mk-length enternity) (lambda (length)(lambda (l)(cond((null? l) 0)(else (add1 (length (cdr l))))))))以上是修改后的length0函数 length≤1 (lambda (mk-length)(mk-length(mk-length enternity)) (lambda (length)(lambda (l)(cond((null? l) 0)(else (add1 (length (cdr l))))))))length≤2 (lambda (mk-length)(mk-length(mk-length(mk-length enternity))) (lambda (length)(lambda (l)(cond((null? l) 0)(else (add1 (length (cdr l))))))))到这里要增加函数处理列表的长度只需要增加一级mk-length函数调用但还是没有解决面对未知长度的列表该函数总有调用结束的时候。 简单解析一下length≤2的执行步骤 首先执行的是最里层的 (mk-length enternity) 得到length0length0就是mk-length函数返回的匿名函数只是这个匿名函数上下文中的length是enterity。 其次执行的是中间层的 (mk-length length0) 得到length≤1length≤1是mk-length函数返回的匿名函数只是这个匿名函数上下文中的length是length0。 最后执行的是最外面层级 mk-length length≤1 得到length≤2length≤2是mk-length函数返回的匿名函数只是这个匿名函数上下文中的length是length≤1。 PSmk-length返回的函数就是length函数也就是上面提到的length0、length≤1和length≤2等。 就这样length≤2函数制作完成。接下来简单介绍下length≤2使用列表(a b c)作为入参的执行过程。 首先执行函数length≤2(a b c)列表不为空将(length≤1 (b c))返回结果加1返回。 其次执行函数length≤1(b c)列表不为空将(length0 ©)返回结果加1返回。 再次执行函数length0(c)列表不为空将(enterity ())返回结果加1返回。 因为enterity无限循环无法退出导致这个length≤2函数入参(a b c)没有结果。 这是一个从右往左安装从左往右执行的过程。length≤1等函数中的length是上一步传进来的函数但是这里的上一步指的是安装过程的上一步不是执行过程的上一步。 通过对上面length≤2函数执行过程的解析发现当执行到enternity整个过程就中断了。怎么才能让length一直执行下去要执行length就需要先mk-length但是mk-length目前无法引用到自己。怎么办 (lambda (mk-length)(mk-length enternity) (lambda (length)(lambda (l)(cond((null? l) 0)(else (add1 (length (cdr l))))))))因为函数enternity是无限递归不会返回所以将enternity替换为mk-length貌似对结果也没啥影响。 (lambda (mk-length)(mk-length mk-length) (lambda (length)(lambda (l)(cond((null? l) 0)(else (add1 (length (cdr l))))))))只要mk-length函数内名字统一就不会影响函数运行所以可以将length替换为名字mk-length。 (lambda (mk-length)(mk-length mk-length) (lambda (mk-length)(lambda (l)(cond((null? l) 0)(else (add1 (mk-length (cdr l))))))))到这里解决了mk-length无法引用自身的问题接下来要解决不可以无限循环问题。 现在已经将length改名为mk-length那么mk-length是生产length的在需要使用length的地方可以使用mk-length来生成一个length。 (lambda (mk-length)(mk-length mk-length) (lambda (mk-length)(lambda (l)(cond((null? l) 0)(else (add1 ((mk-length enterity) (cdr l))))))))使用(apples)作为参数拆解上面函数的执行步骤。 第一步将mk-length作为入参执行 (mk-length mk-length) ((lambda (mk-length)(lambda (l)(cond((null? l) 0)(else (add1 ((mk-length enterity) (cdr l))))))) (lambda (mk-length)(lambda (l)(cond((null? l) 0)(else (add1 ((mk-length enterity) (cdr l))))))))第二步将第二个mk-length作为入参传入第一个mk-length (lambda (l)(cond((null? l) 0)(else (add1 ((lambda (mk-length)(lambda (l)(cond((null? l) 0)(else (add1 ((mk-length enterity) (cdr l)))))))enterity) (cdr l)))))第三步将enterity作为mk-length传入lambda (mk-length) (lambda (l)(cond((null? l) 0)(else (add1 ((lambda (l)(cond((null? l) 0)(else (add1 ((enterity enterity) (cdr l)))))))(cdr l)))))第四步将列表(apples)带入以上函数得到结果1 如果传入的是(apples bananas)执行会中断在(enterity enterity) 再看下刚才得到的函数 (lambda (mk-length)(mk-length mk-length) (lambda (mk-length)(lambda (l)(cond((null? l) 0)(else (add1 ((mk-length enterity) (cdr l))))))))稍微做一些修改 ((lambda (mk-length)(mk-length mk-length)) (lambda (mk-length)(lambda (l)(cond((null? l) 0)(else (add1 ((mk-length mk-length) (cdr l))))))))这样会发现每当要枯竭时(mk-length mk-length)会计算出一个新了函数以供使用。是的(mk-length mk-length)的返回值看起来像一个length函数。 到这里已经完成了匿名函数递归实现length的需求但是我们还要对它做一些简化归纳出一个通用的模式实现任何匿名函数都可以完成递归的需求。 将(mk-length mk-length)提取出来作为length传入 (lambda (mk-length)(mk-length mk-length) (lambda (mk-length)(lambda (length)(lambda (l)(cond((null? l) 0)(else (add1 (length (cdr l)))))))(mk-length mk-length)))拆解一下上面的函数会得到 ((lambda (mk-length)(lambda (length)(lambda (l)(cond((null? l) 0)(else (add1 (length (cdr l)))))))(mk-length mk-length)) (lambda (mk-length)(lambda (length)(lambda (l)(cond((null? l) 0)(else (add1 (length (cdr l)))))))(mk-length mk-length)))((lambda (length)(lambda (l)(cond((null? l) 0)(else (add1 (length (cdr l))))))) ((lambda (mk-length)(lambda (length)(lambda (l)(cond((null? l) 0)(else (add1 (length (cdr l)))))))(mk-length mk-length)) (lambda (mk-length)(lambda (length)(lambda (l)(cond((null? l) 0)(else (add1 (length (cdr l)))))))(mk-length mk-length))))((lambda (length)(lambda (l)(cond((null? l) 0)(else (add1 (length (cdr l))))))) ((lambda (length)(lambda (l)(cond((null? l) 0)(else (add1 (length (cdr l)))))) ((lambda (mk-length)(lambda (length)(lambda (l)(cond((null? l) 0)(else (add1 (length (cdr l)))))))(mk-length mk-length)) (lambda (mk-length)(lambda (length)(lambda (l)(cond((null? l) 0)(else (add1 (length (cdr l)))))))(mk-length mk-length))))))这样下去永无止境将mk-length传给mk-length又立马执行(mk-length mk-length)会继续得到(mk-length mk-length)需要继续执行(mk-length mk-length)这样一直停不下来。 需要回到最初正确的方式中。 ((lambda (mk-length)(mk-length mk-length)) (lambda (mk-length)(lambda (l)(cond((null? l) 0)(else (add1 ((mk-length mk-length) (cdr l))))))))上面方式的提取会导致无限递归是因为(mk-length mk-length)的调用会立马得到一个(mk-length mk-length)这样会一直无限递归下去。 出了(mk-length mk-length)这样立即调用的提取方式还可以延迟调用 (lambda (l) ((mk-length mk-length) l))这样只会在需要调用length时才会调用(mk-length mk-length) ((lambda (mk-length)(mk-length mk-length)) (lambda (mk-length)((lambda (length)(lambda (l)(cond((null? l) 0)(else (add1 (length (cdr l)))))))(lambda (l) ((mk-length mk-length) l)))))到这里基本上完成了匿名函数length递归的简化还需要最后一步将其提取出来。 ((lambda (le)((lambda (mk-length)(mk-length mk-length))(lambda (mk-length)(le (lambda (l) ((mk-length mk-length) l)))))) (lambda (length)(lambda (l)(cond((null? l) 0)(else (add1 (length (cdr l))))))))再看下其中的通用模式 (lambda (le)((lambda (mk-length)(mk-length mk-length))(lambda (mk-length)(le (lambda (l)((mk-length mk-length) l))))))这个模式被命名为Y组合子 (define Y (lambda (le)((lambda (f) (f f))(lambda (f)(le (lambda (x) ((f f) x)))))))以上就是Y组合子的来龙去脉。 补充1 (define enternity(lambda (l)(enternity l)))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/86461.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

外贸建英文网站的重要性广东深圳龙岗区天气

> 作者:დ旧言~ > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:理解【Linux】多线程——线程概念|进程VS线程|线程控制 > 毒鸡汤:有些事情,总是不明白,所以我不会坚持。早安! &…

东阿聊城做网站的公司北京推广平台

全世界只有3.14 % 的人关注了爆炸吧知识作业太少吃得太饱特斯拉是外星人吗?偶然点开这个问题,让超模君震惊得心律不齐。作为人类有史以来最伟大的科学家之一,特斯拉一度被称为“最接近神的人”。但估计特斯拉本人也没有想到,在他长…

asp的公司网站开源免费cms可商业用

描述 有2000001块石头放在一条数线上。这些石子的坐标是 −1000000,−999999,−999998,…,999999,1000000。 其中一些连续的 K 个石子被涂成黑色,其他的被涂成白色。 此外,我们还知道位于坐标 X 的石子被涂成了黑色。 按升序打印所有可能包含被涂成黑…

怎样创立一个网站排版设计素材

现象&#xff1a; 1、点击遮罩弹窗关闭&#xff0c;弹窗的视频已经用v-if销毁&#xff0c;但是后台会自己从头开始播放视频声音。但是此时已经没有视频dom 2、定时器在打开弹窗后3秒自动关闭弹窗&#xff0c;则正常没有问题。 原来的代码&#xff1a; //页面 <a click&quo…

泵阀网站建设网站建设数据库怎么弄

给定一个原串和目标串&#xff0c;能对源串进行如下操作&#xff1a; 1.在给定位置插入一个字符 2.替换任意字符 3.删除任意字符 要求完成一下函数&#xff0c;返回最少的操作数&#xff0c;使得源串进行这些操作后等于目标串。源串和目标串长度都小于2000。动态创建的了二维…

网站提交工具seo关键词排名优化哪好

declare global 如果&#xff0c;要在全局作用域中声明一个新的变量或函数&#xff0c;供整个项目中的多个模块使用。可以使用 declare global 来实现。 在一个全局声明文件中&#xff0c;如 globals.d.ts declare global {var globalVar: numberfunction globalFunction(): …

高端网站定制费用是多少网站中常用的英文字体

将变量包装在对象中 不要使用 console.log(url, url2, baz)&#xff0c;而是使用 console.log({ url, url2, baz })。 如果你比较这两者&#xff0c;你会发现这有多么有用&#xff1a;拥有 url 和 url2 键可以避免这两个 URL 之间的混淆。 在日志前加上唯一字符串前缀 在应用…

浙江省城乡建设网站个人网站下载

目录 一、性能指标 二、jmeter &#xff08;一&#xff09;JMeter 安装 &#xff08;二&#xff09;JMeter 压测示例 1、添加线程组 2、添加 HTTP 请求 3、添加监听器 4、启动压测&查看分析结果 &#xff08;三&#xff09;JMeter Address Already in use 错误解决 压力测…

游戏在线玩免费免登录seo整体优化步骤怎么写

【0】README 0.1&#xff09; 本文旨在总结 中缀表达式转后缀表达式并计算后缀表达式的值 的步骤&#xff0c;并给出源代码实现&#xff1b; 0.2&#xff09; 本文中涉及到的源代码均为原创&#xff0c;是对中缀转后缀和计算后缀的简单实现&#xff0c;&#xff08;旨在理清它…

做网站一条龙网站建设教程集体苏州久远网络

当我们想把视频中去掉声音&#xff0c;可能有多种原因&#xff0c;也许需要制作一个无声视频&#xff0c;或者想在视频中添加自己的音乐或解说&#xff0c;特别是一些搞笑解说&#xff0c;无论原因是什么&#xff0c;到底要怎么把视频中所有的声音都去除呢&#xff1f; 小编给…

平湖公司做网站南城网站建设公司如何

目录 一、循环单链表 1、循环单链表的定义&#xff1a; 2、循环单链表的优缺点&#xff1a; 二、循环单链表的基本操作算法&#xff08;C语言&#xff09; 1、宏定义 2、创建结构体 3、循环单链表的初始化 4、循环单链表的插入 5、求单链表长度 6、循环单链表的清空…

瓜果类网站建设方案网站建设有哪种方式

关于uniapp组件的坑 我有一个组件写的没什么问题,但是报下面这个错误 is not found in path “components/xxx/xxxx” (using by “components/yyy/yyy”) 最后经过排除发现命名需要驼峰命名法 我原本组件命名: 文件夹名 test_tttt 文件名 test_tttt.vue 不行 最后改成文件…

线上海报设计网站环保行业网站怎么做

1 就跟我房东说&#xff1a;现在打工人压力真大一样▼2 原来&#xff0c;连打工人都不配了吗&#xff1f;&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼3 原来这才是家大叶大▼4 给女朋友拍照时的你&#xff01;&#xff08;via.刘一杭三三 &#xff09;▼5 当法…

html5网站建设加盟公司和企业的区别

在上一篇博客中&#xff0c;我介绍了用Tensorflow来重现GPT 1的模型和训练的过程。这次我打算用Pytorch来重现GPT 2的模型并从头进行训练。 GPT 2的模型相比GPT 1的改进并不多&#xff0c;主要在以下方面&#xff1a; 1. GPT 2把layer normalization放在每个decoder block的前…

企业微营销网站国外手机设计网站

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

青浦教育平台网站建设wordpress函数the_posts

项目多人协作的困扰 相信大家多多少少都遇到过&#xff0c;当主线分支的代码&#xff0c;合入到自己的分支的时候&#xff0c;如果这时候&#xff0c;主线中有一些依赖的更新或者添加或者删除&#xff0c;如果合入之后&#xff0c;没有及时的install的话&#xff0c;项目启动的…

dede网站seowordpress清理修订

Kimi 是当前国内相当火爆的 AI 产品&#xff0c;输出结果和使用体验都非常不错。 Kimi 开放了 API 接口&#xff0c;新用户注册后会免费赠送 15 元额度。 Kimi API 的网址&#xff1a; platform.moonshot.cn/console 这是光明正大的白嫖方式&#xff0c;一定不要错过哦。 如…

合肥网站建设是什么网站关键词代码怎么做

Redis 主从复制 redis 主从复制配置 redis 主从复制启动 redis 主从复制断开 redis 主从复制主从复制构特点主从复制的拓扑结构一主一从⼀主多从树状主从 主从复制原理数据同步psync 运行流程全量复制流程部分复制流程实时复制 关于从节点何时晋升成主节点总结 redis 主从复制 …

高端网站建设如何收费红酒商城网站建设

ArcGIS实验视频教程合集:《ArcGIS实验教程从入门到精通》(附配套实验数据) 一、实验描述 网络分析模块用于实现基于网络数据集的网络分析功能,包括路径分析、服务区分析、最近设施点分析、OD成本矩阵分析、多路径配送分析、位置分配分析和高级网络的管理与创建等。 网络…

自创网站怎么赚钱常见的网页布局结构有哪些

题干&#xff1a; 给出长度为n的序列a, 求有多少对数对 (i, j) (1 < i < j < n) 满足 ai aj 为完全平方数。 输入描述: 第一行一个整数 n (1 < n < 105) 第二行 n 个整数 ai (1 < ai < 105) 输出描述: 输出一个整数&#xff0c;表示满足上述条件的数…