函数式编程学习之路(九)

理解:

    经过仔细的思考和思维梳理,今天小有所得。试着把想法整理出来。

静态和动态,声明和具体,规则和使用等等,它们就是易经的乾坤,阴阳,万物上升到哲学上,殊归同途。

在面向对象世界里,表面上我们抽象了,实际上还是在"具体"的思维世界打转转.这是一个类,那是另一个类.然后我们去定义它们的特性,方法.当定义出来的时候,具体的东西也就逐步呈现. 

而最终在使用的时候,所有的东西都被New出来,都是具体的东西.都在操作具体的东西,实例,实例的属性,实例的方法,都是在用副作用来计算.

而作为虚拟世界的上帝,程序员能不能只是建立规则,模式,描述,声明这个世界,具体怎么运转,交给计算机去执行去演化呢?答案是可能的.

通过定义类型,定义范型,定义算法,定义规则,完全第一阶段.

然后去组合这些类型,组合规则,组合算法,完成第二阶段.

最后通过函数式,定义输入输出,通过高阶函数来粘合算法和规则,声明,所有这些都可以在抽象世界里完成.它就象是数学或物理里的公式,定理.这些定义,声明,描述,算法,组合成一个程序世界观,它可以是一个库,一套框架,一个软件.

它样设计出来的程序,软件,是不变的,是没有副作用的,是无错的,是不需要修改维护的,因为它就在那里!

一但它被设计出来,它就在哪里,这样的东西不变的增加,自由组合,有点类似生命世界里的基因片断.

动态,具体,就是在上面的规则下的一个大实例,一个规则描述下运行进化的"真实"世界,它们的规则或"潜规则"下运行...

扯远了...

 

 

posted @   人工智能-群513704292  阅读(278)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示