“法天象而应四时”--茶话软件开发之“抽象”(2)--过程的抽象:函数
本想写这样的一个系列的,无奈一直没有时间,没想到网上已经有人写了类似的文章,说明了我原来的观点:
函数既是过程的抽象!
当然,函数的抽象意义远非如此简单,这里先做一个概念入门,请看转帖的原文:
算法+数据结构=程序。
这是一条很著名的公式。但是我觉得过于简单的公式或者不能适应现在的开发潮流了。
程序一个目的是用来模拟人类的行为,让机器自动化处理本来人自己需要处理的事务。
正因为这样,所以程序有很强的“过程性”,把人的步骤转化为计算机指令的序列。
过程性的设计方法,是最原始的方法,是完全模拟人类习惯的一种方法。
但是,其实过程并不是我们关注的重点,我们关注的是结果。只要是这个结果,我们不在乎这个过程究竟是如何实现的。
有没有办法表述这种从输入到结果的对应关系呢?
有,那就是函数。有了函数,我们就将过程给抽象化了,我们再也不关心过程如何,只需要知道这个函数能正常工作就行了。
因此函数是过程的抽象。我们可以把人类具体事务,识别成各种函数关系。函数关系是关于定义域和值域的对应方法。建立函数关系,首先要明确的定义域和值域,这表现为数据的状态集合,然后定义转换方法。
函数是一个非常高层次的抽象概念,但是过于数学化。我们认识事物的一般方法并不是去定义什么状态集合,而是基于一些归纳了的概念。
待续
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构