丰联汽配网站建设成本石家庄外贸网站建设公司排名

news/2025/9/24 2:46:40/文章来源:
丰联汽配网站建设成本,石家庄外贸网站建设公司排名,网站开发毕业设计源码,网站建设流程分为三个步骤computation expression之一问三不知 计算表达式是一个有点难理解的东西。我把帮助全部看了一遍#xff0c;记住了个上下文敏感的计算#xff08;contex-sensitive computation#xff09;。但是让我讲计算表达式是什么#xff1f;为什么#xff1f;怎么做#xff1f;我…computation expression之一问三不知 计算表达式是一个有点难理解的东西。我把帮助全部看了一遍记住了个上下文敏感的计算contex-sensitive computation。但是让我讲计算表达式是什么为什么怎么做我是满头雾水。我大概知道是什么就是一个语法特征在一个表达式上下文中使用诸如let!return这些语法实现与上下文紧密相关的特殊计算。我甚至还能侃侃而谈上下文相关、如何构造某个特殊表达式match!是let!的语法糖之类的。 到底为什么我不能回答。 奇妙的option计算 还是让我们从一个实际的问题出发。我教了一个班只有两个学生我有点点满意一个叫isaac一个叫mike其他人我根本不想理会。要实现一个全班评价的函数。 let rateStudent name match name with| isaac - Some 90| mike - Some 80| _ - None这个函数的ADT就是val rateCustomer: name: string - int option。 下面的问题是有两个学生问我给他们评价的总分是多少我这个人比较龟毛只有有一个学生是我不想理会的那么我就不置可否None。 实现起来看起来也挺简单 let commentTwo name1 name2 let result1 rateStudent name1let result2 rateStudent name2match result1, result2 with| Some r1, Some r2 - Some(r1 r2)| _ - None 或者我们在学会一个Option.bind之后还能写成 let commentTwoAlt name1 name2 let result1 rateStudent name1let result2 rateStudent name2result1 | Option.bind (fun x -result2 | Option.bind (fun y -Some (x Y)))这里面我们的Option.bind的原型就是在MSDN中给出为bind f inp match inp with None - None | Some x - f x。 这两种方式都行如果两个学生都是我认可的那么给出答案Some 170其他任何情况我都是不予理会None。 接下来事情可能变得有趣起来。假设我有100个学生其中50个我觉得差强人意评了个分数其他的50个继续是不予理会。 怎么办如果我不是求两个学生的和而是要进行其他的计算怎么办 Computation Expression版龟毛老师 这里的问题挺简单就是要处理int option和一个返回int option的函数rateStudent。 首先我们定义一个Builder。 type Maybe() member this.Bind(opt, func) opt | Option.bind funcmember this.Return v Some v这个Builder定义了两个操作一个是绑定一个是返回。然后实例化一个builder。 let maybe Maybe()接下来就能开心的用计算表达式来处理任意复杂的计算 let answer maybe {// binding int option to int let! first rateStudent isaaclet! second rateStudent mikelet! third rateStudent isaac// calculation using intlet total first second third// return float option from floatreturn (float total) / 3.0}上面这个值是一个float option当我们计算中任何一个rateStudent返回None计算表达式就会马上输出None。 我们在上面插入一些printfn更改rateStudent的参数就会发现只要任何一个地方出现None的绑定马上就返回None。 let answer maybe {printfn 0let! first rateStudent isaacprintfn 1let! second rateStudent mikeprintfn 2let! third rateStudent isaacprintfn 3let total first second thirdprintfn returnreturn (float total) / 3.0}如果第一个名字isaac打错的话就只会打印0把None绑定到answer非常神奇。 优点 上面这种实现的优点有哪些 在maybe中let!绑定变量的类型是int而不是int option后续的计算完全不用处理option的问题就当做是没有option龟毛老师这回事返回的类型是float而不需要写作Some float。 疑点 这里的Return比较容易理解就是把一个值包装成Some。但是Bind是怎么工作的呢我们看看Maybe的定义 type Maybe() member this.Bind(opt, func) opt | Option.bind func这里我们调用的时候let! first rateStudent isaac第一个值好理解是一个int option刚好符合Option.bind的第一个参数。但是第二个参数func是什么呢 这里的疑问其实是let在F#中特殊用途。按照函数式编程的概念并没有什么全局变量的概念。而let看起来是定义了一个全局变量。 let x 10 printfn %A x定义变量访问变量多么熟悉啊。但是这里的let其实是一个语法糖它的本质是一个函数调用。 let x 10 in printfn %A x或者 let x 10 in printfn %A x本质上是 10 | (fun x - printfn %A x)这样写就清楚多了。 那么我们这下就能够明白为什么定义绑定的时候第二个参数是一个函数了。因为let!的本质是一个函数调用而Option.bind的第二个参数就是一个函数。实际上这里的函数实际上就是后续的所有表达式组成的一个函数。 let answer maybe {let! first rateStudent isaac inlet! second rateStudent mike inlet! third rateStudent isaac inlet total first second third inreturn (float total) / 3.0}或者 maybe.Bind (rateStudent isaac) (fun first -maybe.Bind (rateStudent mike) (fun second -maybe.Bind (rateStudent isaac) (fun third -let total first second thirdreturn (float total) / 3.0)))这样的话我们就更清楚Bind函数的表达式为什么是那么样子而上面的计算表达式中firstsecondthirdtotal都是int而不是int option了。 结论 处理int option的Builder把int option的计算表达式转换成了int的计算表达式这就是计算表达式的作用让我们在上下文中编写表达式表达我们所想要关注的计算把option的处理逻辑放在上下文中隐含处理这里只涉及到两个表达式let!return更多的构造接下来再说。

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

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

相关文章

给网站做导流房产中介网站排名

兔单克隆抗体技术的演进经历了杂交瘤技术、噬菌体展示技术和单B细胞技术三个关键阶段。这些技术的不断进步推动了兔单克隆抗体技术的优化,显著提高了抗体的生产效率、特异性和适用范围。在科研和医药领域,兔单克隆抗体技术因其不断发展的特性而取得了令人…

用cms做单页网站怎么做自己购买模板建站

原文链接:https://tecdat.cn/?p39668 机器人已广泛融入我们生活的方方面面。在工业领域,它们宛如不知疲倦的工匠,精准地完成打磨、焊接等精细工作,极大提升了生产效率和产品质量;在日常生活里,它们是贴心…

广州网站建设方案优化做淘宝素材网站哪个好用

java猜字母游戏猜字母游戏:用户指定游戏难度(5、7、9),程序生成随机不重复字母。用户猜错,提示用户对的字母数量和对的位置数量。import java.util.Scanner;public class GuessWord {public static void main(String[] args) {Scanner scanne…

有哪些平面设计网站WordPress支持的数据库

简述JDK中lock锁的机制,其底层是一种无锁的架构实现的,是否知道其是如何实现的 synchronized与lock lock是一个接口,而synchronized是在JVM层面实现的。synchronized释放锁有两种方式: 获取锁的线程执行完同步代码,…

左右左布局网站建设湖南十大软件公司介绍

最近,我一直在大量使用JBoss Drools进行项目。 我不是Drools专家-我也不太相信这个框架,或者可能不是只相信该项目中的特定用例-我发现很难为基于Drools的业务规则编写简单,可维护的单元测试 。 这就是junit-drools诞生的方式-简单的帮助程序…

如何自己开发微网站wordpress编辑父主题

在这个飞速发展的时代,我们越来越依赖各种工具来提高工作效率和解决问题。然而,你是否意识到,有些工具不仅仅是工具,它们还能为你带来更多的可能性和机遇?菜鸟工具箱就是这样一个超越工具本身的存在! 菜鸟工…

下载爱南宁官方网站网站建设费交文化事业

1.建立函数: def 函数名(形参): 函数体(记得写缩进) return 返回值(python中可以没有return) 2.调用函数: 函数名(实参) 实参和形参个数相等即可,类型不需要相同 其中接收返回值与C中的差不多 3.如果只是定义而不调用则函数不会执行 4.先定义函数,后调用 5.python中可以…

国外推广网站有什么广州十大传媒公司

对于IOS涉及文本输入常用的两个View是UITextView和UITextField,一个用于复杂文本输入,一个用于简单文本输入,在大多数开发中涉及文本输入的场景使用这两个View能够满足需求。但是对于富文本编辑相关的开发,这两个View就无法满足自…

微信的网站网站做关键词排名

转眼距离930离开鹅厂已经120天了,我是很能拖延的,或者是很懂自我麻痹的,这三个多月,一直想要写点东西纪念,一直拖一直拖一直拖…… 疫情这几年经济下行里裁员是个茶余饭后“嬉笑”之余经常被提起的词,部门滚…

温州高端品牌网站建设wordpress系统的特点

12月16日,在开放原子开源基金会主办的“2023开放原子开发者大会”上,蚂蚁集团主导开源的图数据库TuGraph、时序数据库CeresDB、隐私计算框架隐语SecretFlow、前端框架OpenSumi、数据域大模型开源框架DB-GPT入选“2023快速成长开源项目”。 (图…

给人做网站赚钱深圳罗湖住房和建设局网站官网

所有类型和类型成员都具有可访问性级别,用来控制是否可以在您程序集的其他代码中或其他程序集中使用它们。您在声明类型或成员时使用以下访问修饰符之一来指定其可访问性: public 同一程序集中的任何其他代码或引用该程序集的其他程序集都可以访问该类型…

固镇网站建设哪家好短剧分销平台

文章目录 前言一、Python在物联网和传感器应用中的优势二、连接传感器和设备三、读取传感器数据四、示例代码和讲解五、进一步处理和分析传感器数据六、更多应用示例1、温湿度监测系统2、智能家居系统 - 灯光控制 总结 前言 物联网和传感器在现代科技中扮演着重要的角色。物联…

Day07-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\David\method-Demo041比较难

Java方法Java方法是语句的结合,他们在一起执行一个功能方法的命名规则:首字母小写+驼峰命名规则方法包含于类或者对象中方法在程序中被创建,在其他地方被调用最好保持原子性,一个方法一个功能System.out.printIn()…

巩义旅游网站设计公司有趣的网站知乎

W...Y的主页 😊 代码仓库分享 💕 前言:这是最后一篇Linux工具篇,今天这篇文章我们要来简单讲一件git与调试器gdb。 目录 使用 git 命令行 安装 git 在 Github 创建项目 注册账号 创建项目 ​编辑 下载项目到本地 在 Gite…

惠州中小企业网站制作四川企业seo推广

大家好,我是烤鸭: 今天分享一下有关 mysql 分区。 需求: 按时间分区。 对千万数据左右的表,进行分区,数据的增加量大概千万/年。 代码实现: 模拟之前已经存在的表: DROP TABLE IF EXISTS…

绍兴网站建设方案策划黄埔区建设局网站

前面我们看了一下Sharepoint服务器对象模型的物理对象层次(Physical Objects Hierarchy)和对象内容层次(Content Hierarchy)中的相关类,这里来看看服务层次结构,其中包括表示 Web 服务(WebService)、Windows 服务(WindowService)、其他类型的服务(Icomin…

网站兼职做计划赚小钱域名网站建设方案书

通过共现矩阵和余弦相似度实现机器对单词的认知、python实现本文介绍的定义:一、语料库预处理二、单词的分布式表示三、单词的相似度四、相似单词排序本文介绍的定义: 语料库、计数方法的目的、语料库预处理、单词的分布式表示、分布式假设、上下文、窗…

蚂蜂窝网站分析二级域名网站免费申请

目录 1 TVS管外观结构 2 TVS管常见品牌 ​编辑3 TVS管命名规则 4 TVS管工作原理 5 TVS基本特点 6 TVS典型应用 7 TVS管电气参数说明 7.1 VRWM 截止电压,IR 漏电流 7.2 VBR 击穿电压 7.3 IPP 峰值脉冲电流,VC 钳位电压 8 TVS选型注意事项 8.1…

建设网站外国人可搜到wordpress 导出md

文章目录 一、C语言传统的处理错误的方式二、C异常三、异常的使用3.1 异常的抛出和捕获3.1.1 异常的抛出和匹配原则3.1.2 在函数调用链中异常栈展开匹配原则 3.2 异常的重新抛出3.3 异常安全3.4 异常规范 四、自定义异常体系五、C标准库的异常体系六、异常的优缺点6.1 优点6.2 …

安阳网站建设_电网商城

前言: 📕作者简介:热爱编程的小七,致力于C、Java、Python等多编程语言,热爱编程和长板的运动少年! 📘相关专栏Java基础语法,JavaEE初阶,数据库,数据结构和算法系列等,大家有兴趣的可以看一看。 😇😇😇有兴趣的话关注博主一起学习,一起进步吧! 一、MySQL存…