cuishengli

科学技术的本质是数据

  :: :: 博问 :: 闪存 :: :: :: :: 管理 ::

2021年12月1日

摘要: mutation One pattern many people follow is to be liberal with mutation when constructing data, but conservative with mutation when consuming data. let 阅读全文
posted @ 2021-12-01 07:59 cuishengli 阅读(4) 评论(0) 推荐(0) 编辑

摘要: IEnumerator vs Iterator IEnumerator 不考虑Reset方法和原始列表的可变性,NoveNext和Current的只读向前用法: Initially, the enumerator is positioned before the first element in t 阅读全文
posted @ 2021-12-01 04:10 cuishengli 阅读(32) 评论(0) 推荐(0) 编辑

2021年10月24日

摘要: JavaScript已经实现模式匹配解构功能,没有实现模式匹配过滤功能。用模式来控制程序流,可以编写更加声明性,更加模块化的代码。 阅读全文
posted @ 2021-10-24 16:25 cuishengli 阅读(136) 评论(0) 推荐(0) 编辑

2021年10月21日

摘要: 字母表 ABCDEFG HIJKLMN OPQ RST UVW XYZ abcdefg hijklmn opq rst uvw xyz 单字母变量 单字母变量代表一个临时数据,作用域非常有限,局限在一个短函数内部。 abcd 常数,元素 fgh 表示函数变量 ijk 表示循环变量 lmn 表示整数变 阅读全文
posted @ 2021-10-21 09:19 cuishengli 阅读(141) 评论(0) 推荐(0) 编辑

2021年10月14日

摘要: Testing npm packages before publishing https://blog.vcarl.com/testing-packages-before-publishing/ Now, I use npm pack. npm pack The pack command creat 阅读全文
posted @ 2021-10-14 11:44 cuishengli 阅读(6) 评论(0) 推荐(0) 编辑

2021年10月12日

摘要: 我们定义类时,炉墙代码,和业务代码常常耦合在一起,本文是将业务代码和炉墙代码解耦。利用类继承的特性。 一个常用的构造类的模式是流利模式,或者方法链,耦合的代码如下: class Cake { setFlavour(flavour) { this.flavour = flavour; return t 阅读全文
posted @ 2021-10-12 20:59 cuishengli 阅读(9) 评论(0) 推荐(0) 编辑

摘要: If we look at the way class defines prototypes, we find that the methods defined are not enumerable by default. This works around a common error where 阅读全文
posted @ 2021-10-12 10:40 cuishengli 阅读(5) 评论(0) 推荐(0) 编辑

2021年10月9日

摘要: "Real" Mixins with JavaScript Classes come from Mixins and Javascript: The Good, the Bad, and the Ugly. Mixins and JavaScript are a like the classic C 阅读全文
posted @ 2021-10-09 09:29 cuishengli 阅读(9) 评论(0) 推荐(0) 编辑

2021年9月2日

摘要: ConEmu 这是一个命令行程序,可以从 https://www.fosshub.com/ConEmu.html 下载安装。 安装完成后,用管理员启动这个程序,从右上角的菜单中选择setting..., 在右侧的树选择General,如下设置: Choose your startup task or 阅读全文
posted @ 2021-09-02 08:49 cuishengli 阅读(50) 评论(0) 推荐(0) 编辑

2021年8月31日

摘要: Why Ramda? When buzzdecafe recently introduced Ramda to the world, there were two distinct groups of responses. Those accustomed to functional techniq 阅读全文
posted @ 2021-08-31 19:43 cuishengli 阅读(16) 评论(0) 推荐(0) 编辑

摘要: Thinking in Ramda: Wrap-Up This post completes a series about functional programming called Thinking in Ramda. Over the past eight posts, we’ve been t 阅读全文
posted @ 2021-08-31 15:43 cuishengli 阅读(11) 评论(0) 推荐(0) 编辑

摘要: Thinking in Ramda: Lenses This post is Part 8 of a series about functional programming called Thinking in Ramda. In Part 6 and Part 7, we learned how 阅读全文
posted @ 2021-08-31 15:18 cuishengli 阅读(11) 评论(0) 推荐(0) 编辑

摘要: Thinking in Ramda: Immutability and Arrays This post is Part 7 of a series about functional programming called Thinking in Ramda. In Part 6, we talked 阅读全文
posted @ 2021-08-31 14:47 cuishengli 阅读(9) 评论(0) 推荐(0) 编辑

摘要: Thinking in Ramda: Immutability and Objects This post is Part 6 of a series about functional programming called Thinking in Ramda. In Part 5, we talke 阅读全文
posted @ 2021-08-31 11:29 cuishengli 阅读(18) 评论(0) 推荐(0) 编辑

摘要: Thinking in Ramda: Pointfree Style This post is Part 5 of a series about functional programming called Thinking in Ramda. In Part 4, we talked about w 阅读全文
posted @ 2021-08-31 09:02 cuishengli 阅读(21) 评论(0) 推荐(0) 编辑

摘要: Thinking in Ramda: Declarative Programming This post is Part 4 of a series about functional programming called Thinking in Ramda. In Part 3, we talked 阅读全文
posted @ 2021-08-31 09:01 cuishengli 阅读(8) 评论(0) 推荐(0) 编辑

摘要: Thinking in Ramda: Partial Application This post is Part 3 of a series about functional programming called Thinking in Ramda. In Part 2, we talked abo 阅读全文
posted @ 2021-08-31 09:00 cuishengli 阅读(16) 评论(0) 推荐(0) 编辑

摘要: Thinking in Ramda: Combining Functions This post is Part 2 of a series about functional programming called Thinking in Ramda. In Part 1, I introduced 阅读全文
posted @ 2021-08-31 08:59 cuishengli 阅读(26) 评论(0) 推荐(0) 编辑

摘要: Thinking in Ramda: Getting Started This post is the beginning of a new series about functional programming called Thinking in Ramda. I’ll be using the 阅读全文
posted @ 2021-08-31 08:56 cuishengli 阅读(19) 评论(0) 推荐(0) 编辑

2021年2月4日

摘要: 上一章,我们演示了一个已经写好的文法,带有优先级和结合性的。本章内容为如何利用Yacc写优先级和结合性。 和上一章一样新建一个F#语言的xUnit测试项目,并安装依赖的NuGet包。 然后,我们先输入设计好的文法,此时我们还不知道是否需要解决优先级: lines : lines expr "\n" 阅读全文
posted @ 2021-02-04 16:33 cuishengli 阅读(257) 评论(0) 推荐(0) 编辑

摘要: 本示例是龙书4.9.2的示例,见图4-59。 和前一章一样,新建xUnit项目,用F#语言。起个名C4F59安装NuGet包: Install-Package FSharpCompiler.Yacc Install-Package FSharpCompiler.Parsing Install-Pac 阅读全文
posted @ 2021-02-04 16:32 cuishengli 阅读(447) 评论(0) 推荐(0) 编辑

2021年2月2日

摘要: 本文向大家推荐一个yacc语法自动构建器,FSharpCompiler.Yacc和FSharpCompiler.Parsing前者是解析器生成工具,后者是解析器的依赖项。顾名思义,这个编译器是专门为F#语言使用的。这个文件位于https://github.com/xp44mm/FSharpCompi 阅读全文
posted @ 2021-02-02 17:29 cuishengli 阅读(82) 评论(0) 推荐(0) 编辑

2020年11月22日

摘要: npm 编写cli 编写程序包 新建文件夹,进入目录 npm init -y 创建 package.json 在package.json里,配置bin: "bin": { "hmt": "./index.js" } 键名就是命令名,值是入口文件名。 示例./index.js文件的内容: #!/usr 阅读全文
posted @ 2020-11-22 11:44 cuishengli 阅读(203) 评论(0) 推荐(0) 编辑

2020年11月9日

摘要: webpack-merge provides a merge function that concatenates arrays and merges objects creating a new object. 帮助文档不直观,所以,我们来测试一下,测试框架用jest,babel使用es5语法。 阅读全文
posted @ 2020-11-09 15:49 cuishengli 阅读(262) 评论(0) 推荐(0) 编辑

2020年9月18日

摘要: office是64位的,编程工具是Visual Studio 2019 Create a new Class Library (.NET Framework) project in C#. Use the Manage NuGet Packages dialog or the Package Man 阅读全文
posted @ 2020-09-18 10:59 cuishengli 阅读(318) 评论(0) 推荐(0) 编辑

2020年9月16日

摘要: DiskGenius快速分区启动硬盘 阅读全文
posted @ 2020-09-16 15:30 cuishengli 阅读(2885) 评论(0) 推荐(0) 编辑

2020年9月15日

摘要: 新的F#,引用管理器的程序集下面,没有扩展的程序集,例如,不能添加Office程序集的引用。 绕行方法是,直接编辑项目文件: <ItemGroup> <Reference Include="Microsoft.Office.Interop.Excel"> <HintPath>C:\Program F 阅读全文
posted @ 2020-09-15 10:05 cuishengli 阅读(120) 评论(0) 推荐(0) 编辑

2015年9月30日

摘要: XUnit入门1.如果之前安装了xUnit.net Visual Studio Runner扩展包,通过"工具"菜单下的"扩展和更新"先将该扩展包卸载。2.删除临时目录中的指定文件夹:%TEMP%\VisualStudioTestExplorerExtensions安装Xunit:Xunit的安装现... 阅读全文
posted @ 2015-09-30 19:57 cuishengli 阅读(480) 评论(0) 推荐(0) 编辑

2015年9月10日

摘要: 4.2 Context-Free Grammars Grammars were introduced in Section 2.2 to systematically describe the syntax of programming language constructs like expressions and statements. Using a syntactic variable ... 阅读全文
posted @ 2015-09-10 16:51 cuishengli 阅读(596) 评论(0) 推荐(0) 编辑

摘要: Chapter 4 Syntax Analysis This chapter is devoted to parsing methods that are typically used in compilers. We first present the basic concepts, then techniques suitable for hand implementation, and fi... 阅读全文
posted @ 2015-09-10 16:49 cuishengli 阅读(257) 评论(0) 推荐(0) 编辑

2015年9月8日

摘要: 4.4 Top-Down Parsing Top-down parsing can be viewed as the problem of constructing a parse tree for the input string, starting from the root and creating the nodes of the parse tree in preorder (dept... 阅读全文
posted @ 2015-09-08 16:24 cuishengli 阅读(1147) 评论(0) 推荐(0) 编辑

摘要: 4.3 Writing a Grammar Grammars are capable of describing most, but not all, of the syntax of programming languages. For instance, the requirement that identifiers be declared before they are used, ca... 阅读全文
posted @ 2015-09-08 16:20 cuishengli 阅读(597) 评论(0) 推荐(0) 编辑

摘要: 4.2 Context-Free GrammarsGrammars were introduced in Section 2.2 to systematically describe the syntax of programming language constructs like express... 阅读全文
posted @ 2015-09-08 16:19 cuishengli 阅读(308) 评论(0) 推荐(0) 编辑

摘要: Chapter 4 Syntax AnalysisThis chapter is devoted to parsing methods that are typically used in compilers.We first present the basic concepts, then tec... 阅读全文
posted @ 2015-09-08 16:16 cuishengli 阅读(565) 评论(0) 推荐(0) 编辑

2015年9月6日

摘要: 4.8 Using Ambiguous GrammarsIt is a fact that every ambiguous grammar fails to be LR and thus is not in any of the classes of grammars discussed in th... 阅读全文
posted @ 2015-09-06 14:35 cuishengli 阅读(439) 评论(0) 推荐(0) 编辑

2015年9月5日

摘要: 4.7.6 Compaction of LR Parsing TablesA typical programming language grammar with 50 to 100 terminals and 100 productions may have an LALR parsing tabl... 阅读全文
posted @ 2015-09-05 21:29 cuishengli 阅读(753) 评论(0) 推荐(0) 编辑

摘要: 4.7.5 Efficient Construction of LALR Parsing TablesThere are several modifications we can make to Algorithm 4.59 to avoid constructing the full collec... 阅读全文
posted @ 2015-09-05 14:06 cuishengli 阅读(1328) 评论(0) 推荐(0) 编辑

2015年9月4日

摘要: 4.7.4 Constructing LALR Parsing TablesWe now introduce our last parser construction method, the LALR (lookahead-LR) technique. This method is often us... 阅读全文
posted @ 2015-09-04 20:04 cuishengli 阅读(417) 评论(0) 推荐(0) 编辑

摘要: 4.7.3 Canonical LR(1) Parsing TablesWe now give the rules for constructing the LR(1) ACTION and GOTO functions from the sets of LR(1) items. These fun... 阅读全文
posted @ 2015-09-04 12:52 cuishengli 阅读(229) 评论(0) 推荐(0) 编辑

2015年8月12日

摘要: 映射一Mapping the Table-Per-Hierarchy (TPH) Inheritance模型文件using System.Data.Entity;using System.Data.Entity.ModelConfiguration.Conventions;namespace Dat... 阅读全文
posted @ 2015-08-12 16:29 cuishengli 阅读(276) 评论(0) 推荐(0) 编辑