Computation expressions: Introduction】的更多相关文章

本文仅为对原文的翻译,主要是记录以方便以后随时查看.原文地址为http://fsharpforfunandprofit.com/posts/computation-expressions-intro/ 背景 是时候揭开计算表达式(Computation expression)的神秘面纱了.现有的解释说明都令人难以理解.比如查阅MSDN官方说明,则对初学者来说虽然简单明确,却对理解没有什么太大帮助.例如当你看到如下代码 {| let! pattern = expr in cexpr |} 它只是如…
var str = "Is this This?"; //var regex = new RegExp("is", "gi"); var regex = /is/gi; //console.log(regex.test(str)); console.log(regex.exec(str)); //["Is", index: 0, input: "Is this This?"] console.log(reg…
原文地址:http://fsharpforfunandprofit.com/posts/computation-expressions-wrapper-types/ 在上一篇中,我们介绍了“maybe”工作流,让我们隐藏了写链接和可选类型的繁杂代码. 典型的“maybe”工作流大概类似 let result = maybe { let! anInt = expression of Option<int> let! anInt2 = expression of Option<int>…
On.NET Last week, we had Mads Torgersen on the show to talk about language design in general, and C# in particular. This week, we'll talk to Jonathan Chambers from the Unity 3D team about game engines, and using .NET to target iOS, Android, or even t…
科普文一则,说说我对NodeJS(一种服务端JavaScript实现)的一些认识,以及我为什么会向后端工程师推荐NodeJS. "Node.js 是服务器端的 JavaScript 运行环境,它具有无阻塞(non-blocking)和事件驱动(event-driven)等的特色,Node.js 采用 V8 引擎,同样,Node.js 实现了类似 Apache 和 nginx 的web服务,让你可以通过它来搭建基于 JavaScript 的 Web App." 上周末参与了CNodeJS…
原文地址:http://fsharpforfunandprofit.com/posts/computation-expressions-builder-part1/ 前面介绍了bind和continuation,以及包装类型的使用,现在我们已经准备讲述“builder”类型的一系列的方法了. 如果你看过MSDN documentation,你会发现“builder”类型的方法不仅仅是Bind和Return,还有其他方法如Delay和Zero,这两个方法是干啥用的?这正是本篇以及以后几篇讲述的主题…
原文地址:http://fsharpforfunandprofit.com/posts/computation-expressions-bind/ 上一篇讨论了如何理解let作为一个能实现continuations功能的语法,并介绍了pipeInto函数能让我们增加钩子(处理逻辑)到continuation管道. 现在可以来一探究竟第一个builder方法——Bind,它是computation expression的核心. 介绍“Bind MSDN的computation expression…
原文地址http://fsharpforfunandprofit.com/posts/computation-expressions-continuations/ 上一篇中我们看到复杂代码是如何通过使用computation expressions得到简化. 使用computation expression前的代码 let log p = printfn "expression is %A" p let loggedWorkflow = log x log y let z = x +…
Bind函数 Bind函数在函数式编程中是如此重要,以至于函数式编程语言会为bind函数设计语法糖.另一个角度Bind函数非常难以理解,几乎很少有人能通过简单的描述说明白bind函数的由来及原理. 这篇文章试图通过"人话"来描述bind函数,并通过浅显的实例为零函数式编程语言的开发者揭秘bind函数的作用及用法. public string GetSomething(int id) { var x = GetFirstThing(id); if (x != null) { var y…
原文为: 我们为什么要使用NodeJS 写的好,就收藏于此,供学习之用. 科普文一则,说说我对NodeJS(一种服务端JavaScript实现)的一些认识,以及我为什么会向后端工程师推荐NodeJS. "Node.js 是服务器端的 JavaScript 运行环境,它具有无阻塞(non-blocking)和事件驱动(event-driven)等的特色,Node.js 采用 V8 引擎,同样,Node.js 实现了类似 Apache 和 nginx 的web服务,让你可以通过它来搭建基于 Java…