随笔分类 -  F#

Fsharp .NET
摘要:原文 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 阅读(491) 评论(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) 编辑
摘要:原文 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 阅读(173) 评论(0) 推荐(0) 编辑
摘要:现在的主流编程模式是命令式(imperative),Java、C、Python 等大多数常见的语言都属于这类。 命令式编程的函数可以没有返回值,比如(以 javascript 为例): function ok() { console.log('ok') } 上面这个函数就没有返回值。 但函数式编程则 阅读全文
posted @ 2020-12-01 20:57 cmdOptionKana 阅读(495) 评论(0) 推荐(0) 编辑
摘要:原教程在这里 https://fsharpforfunandprofit.com/posts/designing-for-correctness/ 但下面的内容是我在原教程的基础上自己添加的,原教程里没有下面的内容。 原教程里定义了一个类型 Cart, 但下面我们不用关心 Cart 的具体定义,只需 阅读全文
posted @ 2020-12-01 17:45 cmdOptionKana 阅读(139) 评论(0) 推荐(0) 编辑