FSharp.Compiler
摘要:创建类库,更新NuGet,在程序包管理器控制台执行包安装。 Install-Package System.Buffers Install-Package System.Collections.Immutable Install-Package System.Diagnostics.Diagnosti
阅读全文
SketchSegment
摘要:SketchSegment是一个抽象类,需要确定特殊实体: let PrintSketchSegmentInfo (skSeg : SketchSegment) = match enum<swSketchSegments_e>(skSeg.GetType()) with | swSketchSegm
阅读全文
fsproj 相关 net481
摘要:net481是.net framework 4.8.1的标识名称,F# xunit默认下拉列表目标没有包含它,如果你必须测试net481,对于项目文件作如下修改: <PropertyGroup> <!--<TargetFramework>net6.0</TargetFramework>--> <Ta
阅读全文
日记2023-09-07
摘要:随笔1: 阿拉伯数字,大写英文字母,小写英文字母,点号,减号,共是64个,2的6次方。 随笔2: 数据类型和方法尽量分离,对于F#来说,记录类型,可区分联合类型,里面不要使用`member`成员,而是将其放到`module`模块中。 尽量不要使用类属性,而是单独声明`set`与`get`成员。避免将
阅读全文
solidworks api ch05
摘要:打开一个现存的文件,并选择一个表面,执行下列代码: ```fsharp let testSelectFace(swApp: ISldWorks) = let swModel = swApp.ActiveDoc |> unbox let swSelMgr = swModel.SelectionMana
阅读全文
2023年7月11日
摘要:Excel常用字符处理公式: 从`DN80`提取`80`: ```fsharp =VALUE(RIGHT(B2,LEN(B2)-2)) ``` 连接字符串: ```fsharp =TEXTJOIN("-",FALSE,C2,D2) ``` data, subtotal, ungroup, clear
阅读全文
solidworks api ch03
摘要:3.1 系统选项 ```fsharp let systemOptions(swApp: ISldWorks) = swApp.SetUserPreferenceToggle(int swUserPreferenceToggle_e.swInputDimValOnCreate, true) swApp
阅读全文
solidworks 20230702
摘要:1.6.1节,18页,步骤16的代码: ```fsharp open SolidWorks.Interop.sldworks let main(swApp: ISldWorks) = let swModel = swApp.ActiveDoc |> unbox let boolstatus = sw
阅读全文
fsproj添加链接文件
摘要:链接文件是代码复用的一种手段。 <ItemGroup> <Compile Include="..\FslexFsyacc\FSharpSourceText.fs"> <Link>FSharpSourceText.fs</Link> </Compile> <Compile Include="..\Fs
阅读全文
F#写WPF程序,`.net7.0-windows`
摘要:F#没有WPF模板,实现.net7.0-windows需要手工实现,本文就是讲解如何新建一个F#WPF程序。 新建控制台应用程序。非(.net framework) 修改项目属性,项目文件(*.fsproj)代码如下: <Project Sdk="Microsoft.NET.Sdk"> <Prope
阅读全文
`MahApps.Metro` Quick Start
摘要:MahApps.Metro Quick Start This guide will introduce you to how MahApps.Metro works and how to incorporate it into your app. 原则:xaml不要调用后台代码,后台代码调用xaml
阅读全文
CountdownEvent
摘要:System.Threading.CountdownEvent
阅读全文
Create a new F# WPF Code Behind Application
摘要:Create F# WPF Code Behind Application Create an F# console application (.NET Framework). Change the Output type of the application to Windows Applicat
阅读全文
F#用`id<XXX>`函数前置标注类型
摘要:F#核心库有个不起眼的函数id,它非常简单,位于模块module FSharp.Core.Operators,签名是: val id: 't->'t The identity function 更具体的实现代码是: let id<'t> (x:'t) = x I sometimes use id<_
阅读全文
F#参数化xUnit测试
摘要:Parameterized xUnit Tests with F# InlineData 最简单用法只有一个整数型循环变量,用一个列表值保存数据: [<Theory>] [<InlineData(0)>] [<InlineData(1)>] member _.``02 - augment produ
阅读全文
F#反射获取名称的三种方法
摘要:获取当前方法名称 MethodBase.GetCurrentMethod().Name 获取所在类型的名称 let name = this.GetType().Name 获取任意标识符的名称 let subfolder = nameof this.subfolder
阅读全文
IEnumerator vs Iterator
摘要:IEnumerator vs Iterator IEnumerator 不考虑Reset方法和原始列表的可变性,NoveNext和Current的只读向前用法: Initially, the enumerator is positioned before the first element in t
阅读全文
Yacc用优先级和结合性解决冲突
摘要:上一章,我们演示了一个已经写好的文法,带有优先级和结合性的。本章内容为如何利用Yacc写优先级和结合性。 和上一章一样新建一个F#语言的xUnit测试项目,并安装依赖的NuGet包。 然后,我们先输入设计好的文法,此时我们还不知道是否需要解决优先级: lines : lines expr "\n"
阅读全文
Yacc使用优先级
摘要:本示例是龙书4.9.2的示例,见图4-59。 和前一章一样,新建xUnit项目,用F#语言。起个名C4F59安装NuGet包: Install-Package FSharpCompiler.Yacc Install-Package FSharpCompiler.Parsing Install-Pac
阅读全文
FSharpCompiler.Yacc 入门示例
摘要:本文向大家推荐一个yacc语法自动构建器,FSharpCompiler.Yacc和FSharpCompiler.Parsing前者是解析器生成工具,后者是解析器的依赖项。顾名思义,这个编译器是专门为F#语言使用的。这个文件位于https://github.com/xp44mm/FSharpCompi
阅读全文