摘要: 原文 https://fsharpforfunandprofit.com/posts/computation-expressions-bind/ 原文的末尾有一道练习题: let strToInt str = ??? let stringAddWorkflow x y z = yourWorkflo 阅读全文
posted @ 2020-12-14 16:20 cmdOptionKana 阅读(160) 评论(0) 推荐(0) 编辑
摘要: “隐藏运算” 是我发明的词,它的正式名称是 “computation expressions”。 但 “computation expressions” 这个名称实在让人非常费解,也不能反映它的作用,不是一个好名称。 它的作用是在背后对两个表达式进行一些操作,让表达式们表面上看起来简单。 请看例子: 阅读全文
posted @ 2020-12-13 22:09 cmdOptionKana 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 原文 https://fsharpforfunandprofit.com/posts/recipe-part2/ 参考 https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/results 这是关于 F# 的一个最受欢迎的 阅读全文
posted @ 2020-12-11 16:25 cmdOptionKana 阅读(490) 评论(0) 推荐(0) 编辑
摘要: 1 https://fsharp.org https://fsharpforfunandprofit.com https://dotnet.microsoft.com/languages/fsharp https://docs.microsoft.com/dotnet/fsharp/tour htt 阅读全文
posted @ 2020-12-09 23:22 cmdOptionKana 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 本文只是笔记/摘录,没有解释说明,因为原文有些句子太精彩了,忍不住要记下来,只是个人笔记,大家请看本博客的其他文章,这篇不用细看。 原文: https://fsharpforfunandprofit.com/posts/expressions-vs-statements/ https://fshar 阅读全文
posted @ 2020-12-09 21:14 cmdOptionKana 阅读(886) 评论(0) 推荐(0) 编辑
摘要: 在纯函数式编程的世界里没有 null(或nil), 而且是天生就没有这个概念,很自然就没有,而不是故意避开。 因为纯函数式是没有变量的,比如: let x = "abc" 这里, x 严格来说不是一个变量(虽然有时为了方便有可能称之为变量),这一行代码是做了一个 binding, 是将 “abc” 阅读全文
posted @ 2020-12-09 19:37 cmdOptionKana 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 原文 https://fsharpforfunandprofit.com/posts/overview-of-types-in-fsharp/ 这个特性我觉得也比较新鲜,以前没有见过,先看代码吧: type Dollar = Dollar of int let earn d:Dollar = d + 阅读全文
posted @ 2020-12-09 11:13 cmdOptionKana 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 经过本系列前面几篇文章对 F# 的介绍,是时候来一个比较小巧的例子了。 这个例子的原文见 https://fsharpforfunandprofit.com/posts/roman-numerals/ 将罗马数字转换成普通的十进制数字,完整代码如下: module Roman = type Digi 阅读全文
posted @ 2020-12-08 11:47 cmdOptionKana 阅读(515) 评论(0) 推荐(0) 编辑
摘要: 标题所说的 “乾坤大挪移” 是个夸张的说法,其实本文只是讲讲两种 “小挪移”。 其一,是指将面向对象编程中的 “对象” 换个位置,使其变成函数式编程中的函数的 “参数”,以便符合 F# 的编程风格。 之所以能进行这种挪移,是因为 F# 虽然以函数式为主,但已经被扩充成也支持对象(虽然不是 “纯函数式 阅读全文
posted @ 2020-12-03 23:24 cmdOptionKana 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 即使没有专门学习过函数式的人也有可能听说过传说中的柯里化(currying),这是一个比较 “出圈” 的概念,也是函数式编程的重要特性之一。 我会从最简单的情况开始讲述,刚开始你可能觉得无聊,但随着函数的演化,事情会开始变得有趣。 下面请看一个正常的 F# 函数: let add x y = x + 阅读全文
posted @ 2020-12-02 09:11 cmdOptionKana 阅读(170) 评论(0) 推荐(0) 编辑