【SICP归纳】5 泛型运算符

探讨数据抽象的两大核心思想及其实现复杂系统时面临的挑战。文章深入分析了水平与垂直抽象障碍的重要性,以及如何通过垂直障碍实现不同实现方法的隔离,确保系统扩展性和维护性。

关于数据抽象,有两个很重要的思想。一是在构建一些水平的抽象障碍在这个系统中。用某些对象来代换这些单独使用的抽象屏障。二是当需要使用某种形式的数据对象时,往往可以由其他人来将其实现,而我们并不需要知道具体操作。这都是在数据抽象方面非常强大的编程方法。

但是这还不足以完成一个真正复杂的系统。在这里的问题出在“其他人”,作者常举的例子是Georges。归结来说,有很多人都工作在这个系统上,但所有的这些设计表达式很显然是不兼容的。问题是所有的整个系统却又不可能由一个人来完成,可又无法让所有的实现不能互相干扰。在以某种方式设计系统时,我们就不仅仅需要这些水平的障碍,还需要某种形式的垂直障碍,让这些实现方法分割开来。

那么该怎么做呢,一种方式是,每个人都得去改变自己的设计风格去迎合这个系统。也这是人们经常尝试却又永远无法高效工作的。(Lisp太多伟大的特性,让程序员更加有效的编程。这些理念并不新颖,Lisp几十年前就有了,但有多少其他语言能够做到呢。当然也并非其他语言一无是处,我只是和前辈们一样觉得学习SICP和Lisp能够变得更强大。)而另一种方式,则是以某种方式来进行安排,做一些垂直的抽象障碍。例如当被问到人事记录中的名字时,不论以何种可能出现的输出格式,最终都会得到一个正确的名字。这就比如当打开一个国际网站时,不论其中的过程如何,最终得到的网页都会是我们所需要的语言。同一个网站,可能有英文、简体中文、繁体中文、法文、德文等等,也许不同的程序员负责不同的语言以及不同的见面,但最终通过垂直的抽象屏障将其分离开来,所以我们并不会在一个网页中看到多种语言同时混杂在一起的界面。

更重要的是,如果要设计一个系统,以便下一次有新的部门被纳入公司时,他们不必在已经关于这个系统做好的系统中做些重大的改变,并且公司的其他部门也不必去做重大的改变来让新部门融入进来。这才是我们应该考虑的问题,而不是一股脑的去改变所有的已写好的代码和结构。也就是分布式的一个浅显示例了,3.4节的并发也是一个很重要的理念。书中第135页的类型塔很有意思,仿佛就像类的继承一般。



感谢访问,希望对您有所帮助。 欢迎关注或收藏、评论或点赞。


为使本文得到斧正和提问,转载请注明出处:
http://blog.youkuaiyun.com/nomasp


版权声明:本文为 NoMasp柯于旺 原创文章,未经许可严禁转载!欢迎访问我的博客:http://blog.youkuaiyun.com/nomasp

转载于:https://my.oschina.net/nomasp/blog/503461

六自由度机械臂ANN人工神经网络设计:正向逆向运动学求解、正向动力学控制、拉格朗日-欧拉法推导逆向动力学方程(Matlab代码实现)内容概要:本文档围绕六自由度机械臂的ANN人工神经网络设计展开,详细介绍了正向与逆向运动学求解、正向动力学控制以及基于拉格朗日-欧拉法推导逆向动力学方程的理论与Matlab代码实现过程。文档还涵盖了PINN物理信息神经网络在微分方程求解、主动噪声控制、天线分析、电动汽车调度、储能优化等多个工程与科研领域的应用案例,并提供了丰富的Matlab/Simulink仿真资源和技术支持方向,体现了其在多学科交叉仿真与优化中的综合性价值。; 适合人群:具备一定Matlab编程基础,从事机器人控制、自动化、智能制造、电力系统或相关工程领域研究的科研人员、研究生及工程师。; 使用场景及目标:①掌握六自由度机械臂的运动学与动力学建模方法;②学习人工神经网络在复杂非线性系统控制中的应用;③借助Matlab实现动力学方程推导与仿真验证;④拓展至路径规划、优化调度、信号处理等相关课题的研究与复现。; 阅读建议:建议按目录顺序系统学习,重点关注机械臂建模与神经网络控制部分的代码实现,结合提供的网盘资源进行实践操作,并参考文中列举的优化算法与仿真方法拓展自身研究思路。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值