12.4 可选工作流(alternative workflows)
计算表达式(Computation expressions)是一种 F# 功能,部分灵感是来自 Haskell 的单子(monads)。单子有个不好的名声,对于脑 bustingly 有困难的人来说,但是,也不用担心。我们将看一下如何实现一套有趣的技术,可以在 C# 中很好地处理 Option<T> 值。还将看到如何在 F# 中做类似的事情,如何用优美的 F# 语法来写一个简单日志记录器。
我们甚至可以不用提到单子,就能完成这一切。本书是在更普遍的意义上来讲述关于函数编程的,我们想要给你介绍更多 F# 的功能。我们偶尔会介绍一些基础术语,这对于你想了解其他编程语言可能有所帮助。你总是可以跳过这些听起来很复杂的部分,直接进入下一个示例。你可能会惊讶地发现,我们以前已经解释过这一章中的单子。事实上,你甚至在拿起这本书之前,就可能使用过它们:LINQ 是也基于单子的。
在第 6.7 节,我们讨论过选项值的绑定函数,学习过类似的运算符,对于列表同样有意义。在 F# 库中其标准的名字是 List.collect,所以,当你听到 Seq.collect 也是绑定运算符的一种形式时,一定不会感到诧异,只是这次是处理序列而已。在本章中,我们已经看到过,这个操作在 LINQ 查询和 F# 序列表达式中都很重要。另外,在这里有三种操作的类型签名:
Option.bind : ('a -> option<'b>) -> option<'a> -> option<'b>
List.collect : ('a -> list<'b>) -> list<'a> -> list<'b>
Seq.collect : ('a -> #seq<'b>) -> seq<'a> -> seq<'b>
作为参数值提供的函数,指定了包含在第二个参数值中的每个值需要处理的(类型 ‘a)。对于列表和序列,表示输入序列的每个元素都会调用这个函数。对于选项值,这个函数最多执行一次,只在第二个参数值是 Some 值时。提醒一下:可以把选项值看关是,有零或一个元素的列表。
你可能已经知道,可以创建自定义的 LINQ 查询运算符的实现,并使用它们来处理我们自己的集合类型。对于只使用查询语法来处理集合,没有任何限制。
分享到:
相关推荐
常用工作流程審批,使用微軟工作流最新技術, you will prove that this resource is so good that the integral is how low.
phpworkflow常用在OA,ERP等等的审核审批系统上,能够快速的布局,减少开发工作量,PHP工作流引擎
主要介绍了OpenStack 工作流workflows使用原理详细介绍的相关资料,需要的朋友可以参考下
SharePoint 2010之 工作流 SharePoint 2010之工作流
workflows, 社区维护工作流&工具( 示例) CWL工具&工作流 "工具&工作流"是一个社区知识库CWL工具和工作流描述。提交新的工作流或者工具描述,请针对这里存储库发出请求请求。为包含在这里存储库中的任何捐赠应该在...
Sharepoint工作流实例--一步一步学习sharepoint2010 workflow 系列第一部分:sharepoint工作流简介 第1章 在你的业务流程上使用sharepoint工作流(SharePoint workflows for your business)
alfred-workflows, that 3工作流的集合,将会导致你的世界 工作流程的工作流程集合,将为你的世界提供帮助。 安装使用下载和打开文件。你需要购买Powerpack插件才能使用这些工作流。工作流 Caffeinate ( v3.03.0 ) ~...
前端开源库-node-workflows节点工作流,操作驱动工作流的简单快速实现。
Dapr工作流程-使用Dapr运行云原生工作流程Dapr Workflows是轻型主机,允许开发人员使用工作流引擎和在本地,本地或任何云环境中运行云本地工作流。 观看此以了解Dapr工作流程的概述。内容好处通过使用工作流引擎,...
Etch.OrchardCore.Workflows 模块提供了有用的工作流任务和事件。 建立状态 果园核心参考 ... “导出工作流”页面显示的工作流列表类似于访问主“工作流”路由时看到的工作流,在其中一个中选择“导出”
工作流程 包含工作流输出
alfredworkflows, 传统的Alfred工作流 isometry工作流程的各种工作流。请注意,大多数工作流现在已经移动到独立的档案库,链接如下:手册:UNIX手册页搜索管道: 通过任意 shell 一个接口过滤剪贴板:快速打开到远程...
windows workflows function 经典的源码,本人也是工作流的新手,这个代码真的是很有帮助!
工作流程该存储库提供了一些工作流示例。 下载它们,然后将它们加载到MSActivator存储库中。 或者,请参见下面的“在实时MSA上安装此存储库”。入门提供了一组教程,以帮助您开始使用Workflow。在实时MSA上安装此...
SharePoint.2010.Workflows.实战 这是源代码,另有同名pdf文档介绍
高级工作流程该引擎由Gcoop Cooperativa LTDA开发 原客户是阿根廷的 Banco Credicoop Cooperativo Limitado关于发动机这个工作流引擎的灵感来自塞巴斯蒂安·伯格曼的关于代码目前,代码主要是西班牙语,但是,我们要...
它与 redmine 版本 2.6.0.stable 兼容该插件为工作流配置提供了可视化。 改编自插件 redmine_workflow_viz 以与 Redmine 2.x 一起使用。 ====================== 下载文件夹“redmine_workflow_viz2” 将文件夹添加...
工作流程课程 这个项目是wf管理的一个例子。
workflows-study:github的工作流(动作)研究和测试