在上一篇 从程序员视角和编程语言角度看【中医】:一种生命健康编程语言 ,咱们谈到了变量的命名问题,谈到了语言和文化霸权,这篇短文,将继续探讨名字问题的重要性。html
名字事关话语权,事关地位,甚至事关“霸权”,若是不信,你儿子的名字怎么取,跟你老婆姓仍是跟你姓?假如你老婆说儿子必须跟她姓,这个名字问题是否是一会儿就变成很是重要的问题了?程序员
vA="";
vB="";
请问这是一个意思吗?编程
若是从变量值的语义来看,是一个意思;安全
var 镜子1=“”; 镜子1=“猪八戒”; 镜子1=“孙悟空”;
上面的伪代码说明,镜子这个变量的值,变了,因此咱们说镜子是一个变量,名副其实啊!并发
可是,若是有人问,镜子里面究竟是猪八戒,仍是孙悟空?编程语言
这个问题很差回答,由于没有说是哪一个时候的镜子,是一分钟前的,仍是一分钟后的?函数
因此,变量易变这个特征,它带来好处的同时,却增长了更多的麻烦。高并发
其实,要解决这麻烦,咱们把镜子换成照片:post
var 照片1=“猪八戒”; var 照片2=“孙悟空”;
固然实际产生一张照片的过程仍是比较复杂,咱们这里将这个过程简化,认为一张照片就是胶卷上的一张底片生成的,底片用了就不能再使用了,也就是说,照片一旦拍了,就不能改变了,可是照片在使用以前,是能够用来拍摄任意照片内容的,因此,这里又引出了一个变量的“不变性”问题。学习
变量的不变性,使得变量的值变得稳定,追踪变量的值变得简单。不少函数式语言都支持这种“不可变变量”的,例如在F#中,可使用下面的方式来证实:
let x = 10 let y = 5 let x = x + y // Compile Error
函数式语言变量的不变性,使得在高并发下程序运行的安全性获得了保证,不用担忧某个线程把变量修改了,缺点就是须要更多的内存来复制变量值,程序运行效率下降。
变量的这种不变性,有些函数式语言称之为“变量绑定”,变量和它的值一旦绑定后,就不能改变了。这样,咱们讨论某个变量的时候,就能够等价的讨论它绑定的值。这是一个颇有用的方式,好比汇编语言,咱们用一些汇编指令符号,来代替具体的二进制机器指令,为编制复杂的计算机程序成为可能;以后,咱们又进一步对汇编指令进行抽象,发明了计算机高级语言,为编制大规模复杂程序提供了可能。假如你不是搞计算机的,但你学习过中学数学吧,“代数”,解方程总知道吧?咱们用代数来求解复杂的方程,化繁为简。在物理学中,符号在物理学公式中的做用更加剧要了,好比爱因斯坦的质能方程:
E=mc²
方程中,E表明能量,m表明物质的质量,c表明光速常量,质能方程描述了质量与能量之间的当量关系的方程。
方程式的左边表示能量,方程式的右边,定义了质量和光速常量的计算关系,经过这种关系能够计算出物质质量转换为能量的大小。
因为这个方程式很是著名,没有它就没有原子弹,就没有二战后的和平,就没有人类取之不尽的核能能源,因此在这个方程式中,这几个符号的关系就规定好了,从这种符号的关系,能够获得很是重要的理论而且应用这种理论发明各类伟大的或者重要的技术,那么咱们在讨论过程当中进行的这些活动,站在符号的角度,它就是“符号推理”。换言之,咱们在讨论能量和质量的关系的时候,符号E “隐藏”着这符号mc² 的关系,这个关系在其余人不能发现,可是爱因斯坦发现了,因此爱因斯坦能成为伟大的科学家,而咱们不能。对咱们普通人而言咱们没有能力去揭示事务内部的本质的机制,但咱们能够从事物之间外部的表象来总结分析,从而去假设事物内部的运行规律,而后再用这个假设来解释更多的外部现象。若是基于这种假设可以比较完善的解释事物之间浅显的容易证明的关系,那么这个假设就是“科学”的,这个研究方法就是科学的研究方法。
若是这些符号,不是英文字母,单词,而是中文词汇,好比阴,阳,金,木,水,火,土,天干地支,不能够吗?固然能够,中医的阴阳五行理论,正是这样一套符号推理体系。
在古代,受限于科学技术的条件,咱们不能直接揭示出一些事物的内部机制,但可以用上面说的一样的方式,从事物外部的表象之间的关系,来推导事物的内部机制。在中医的语境中,这种方法理论,就是“藏像”理论。
百科词条这样解释“藏像”:
“藏象”二字,首见于《素问·六节藏象论》。藏指藏于体内的内脏,象指表现于外的生理、病理现象。藏象包括各个内脏实体及其生理活动和病理变化表现于外的各类征象。
藏象学说是研究人体各个脏腑的生理功能、病理变化及其相互关系的学说。它是在历代医家在医疗实践的基础上,在阴阳五行学说的指导下,归纳总结而成的,是中医学理论体系中极其重要的组成部分。
为何要用“藏像”理论去研究人体?
在西医中,解剖学是一门很重要的学科,它是外科学的基础,如今已经发展到了显微外科学,解剖学经过将人体的组织,器官进行深刻的解剖,寻找出人体的详细构造结构。可是,这种对人体的研究方式,有一个先天的缺陷,人体是一部复杂的活的精密的“仪器”,不太可能对活的生命体进行解剖观察,所以现有解剖学得出结论不足于真实解释人体构造运行的规律。
做为程序员,每天跟测试打交道,必定知道黑盒测试跟白盒测试的概念。大部分测试人员,都在作黑盒测试,即经过运行程序,在功能操做中发现你的bug,而不是反编译你的程序,而后一行行阅读代码,来分析寻找你的bug。做为开发人员的你,都不太可能经过仅阅读本身的代码就发现全部bug,怎么可能要求测试人员作到白盒测试呢?因此,黑盒测试,是一种被证实了的可行的测试方式,也是软件工程中必须作的一个工做环节,若是说软件工程是一种科学的工程学方法,你不能说黑盒测试不科学吧?
既然咱们不能要求测试人员来作白盒测试,那么就不要要求古代的医生必需要会搞如今这样的解剖才算是医生了,他们经过对人体外表症状和相关关系的分析研究,同样可以找到人体健康运行的规律。这种方法,就是“藏像”理论的研究方法。咱们没必要去活体解剖一个病人,看他内脏有什么病变,咱们经过中医基础理论的气血经络,观察发现同一类疾病相关的人体外在的表现,推导此时人体内部脏腑功能的运行状况,而后再从这些状况来推导出脏腑功能改变的关系,预测出疾病发辗转变的路径,最后再经过人体外部表现出来的新的病症,来验证这个理论推导的正确性。
有一个故事,可以很好的说明这个过程,这就是《扁鹊见蔡桓公》:
扁鹊见蔡桓公,立有间,扁鹊曰:“君有疾在腠理,不治将恐深。”桓侯曰:“寡人无疾。”扁鹊出,桓侯曰:“医之好治不病觉得功!”
居十日,扁鹊复见,曰:“君之病在肌肤,不治将益深。”桓侯不该。扁鹊出,桓侯又不悦。
居十日,扁鹊复见,曰:“君之病在肠胃,不治将益深。”桓侯又不该。扁鹊出,桓侯又不悦。
居十日,扁鹊望桓侯而还走。桓侯故令人问之,扁鹊曰:“疾在腠理,汤熨之所及也;在肌肤,针石之所及也;在肠胃,火齐之所及也;在骨髓,司命之所属,无奈何也。今在骨髓,臣是以无请也。”
居五日,桓侯体痛,令人索扁鹊,已逃秦矣。桓侯遂死。
神医扁鹊经过观察蔡桓公外部的病症,就知道了蔡桓公此时所得何病,而且还能预知此病的演变发展,同时给出蔡桓公合适的治疗方案。无奈蔡桓公炜疾忌医,不治而亡。扁鹊的这个故事,他使用的方法正是中医的"藏像"理论的方法。
这两篇文章是从程序员和软件编程角度,来观察解释中医理论的,本篇从变量的表象到变量的内部关系,探讨了变量的易变性和不变性,而且由变量的不变性讨论了符号推理的简单原理,由这种推理方式说明了对于复杂问题的解决模式,这就是由表及里问题分析解决模式,这种模式也是工程学中科学的工做方式,中医使用的“藏像”理论,正是使用的这种模式。