自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 对linear-type的体会

对linear-type介绍的文章看得很少,也没兴趣和时间去研究,这里只对看到的片言只语谈点肤浅体会和想法。内存堆分配的指针/引用所带来的内存安全问题主要有三:空指针(未分配)、野指针(未初始化)、空悬指针(被其它指针提前释放)。对于并发多任务来说还有第四个问题:竞争导致值不确定。无论是linear-type还是Rust语言的生命期,都是为了解决指针/引用所引发的问题,对于栈上连续分配的、随作用域同步分配和释放的变量,那些技术是没有意义的。FP的纯函数 由于一次性定值,不允许再赋值和状态变化,也不存在

2021-02-11 23:19:17 297

原创 F# 用类型扩展实现传统的类和对象

时过已久,忘了是从何处摘录下的一段F#代码,它是演示F#如何用面向对象范式 写类class、继承inherit、实现接口interface。type TimelessPerson = class val m_name : string // private field new (name) = { m_name = name } // public constructor member x.SayHello() = Console.WriteLine(x.m_name ^ @" say

2020-08-31 05:40:48 120

原创 通过一个程序来理解 Go 和 F# 两种语言的多态实现方法

本程序计算一个组织机构的净收益。假设这个虚构的组织所获得的收入来源于两个项目:fixed billing 和 time and material。该组织的净收益等于这两个项目的收入总和。然后我分别用GO和F#两种语言来比较各自的特点及它们有趣的共性。GO的代码摘自《GO语言中文网》的GO系列教程。GO:type Income interface { calculate() int source() string}type FixedBilling struct { projectNa

2020-08-29 15:56:50 189

原创 F#语言的类型扩展实现面向对象编程 及与GO语言的比较

F#语言作为.NET家族的重要成员, 在基本保持ML系语言OCAML风格和模式的前提下, 又加入诸如C#在面向对象方面的许多内容, 使之成为既有函数式(为主)又有OOP的多模式编程语言。其OOP模式高度秉承了C#关于类和对象的语言特征与风格。F#做OOP的标准套路:module asClass = type ICounter = interface abstract GetState: unit -> int abstract Increment: int -> unit

2020-08-29 06:44:57 258

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除