函数式编程学习之路(九)
理解:
经过仔细的思考和思维梳理,今天小有所得。试着把想法整理出来。
静态和动态,声明和具体,规则和使用等等,它们就是易经的乾坤,阴阳,万物上升到哲学上,殊归同途。
在面向对象世界里,表面上我们抽象了,实际上还是在"具体"的思维世界打转转.这是一个类,那是另一个类.然后我们去定义它们的特性,方法.当定义出来的时候,具体的东西也就逐步呈现.
而最终在使用的时候,所有的东西都被New出来,都是具体的东西.都在操作具体的东西,实例,实例的属性,实例的方法,都是在用副作用来计算.
而作为虚拟世界的上帝,程序员能不能只是建立规则,模式,描述,声明这个世界,具体怎么运转,交给计算机去执行去演化呢?答案是可能的.
通过定义类型,定义范型,定义算法,定义规则,完全第一阶段.
然后去组合这些类型,组合规则,组合算法,完成第二阶段.
最后通过函数式,定义输入输出,通过高阶函数来粘合算法和规则,声明,所有这些都可以在抽象世界里完成.它就象是数学或物理里的公式,定理.这些定义,声明,描述,算法,组合成一个程序世界观,它可以是一个库,一套框架,一个软件.
它样设计出来的程序,软件,是不变的,是没有副作用的,是无错的,是不需要修改维护的,因为它就在那里!
一但它被设计出来,它就在哪里,这样的东西不变的增加,自由组合,有点类似生命世界里的基因片断.
动态,具体,就是在上面的规则下的一个大实例,一个规则描述下运行进化的"真实"世界,它们的规则或"潜规则"下运行...
扯远了...
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 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的设计模式综述