主题:【原创】庖丁解字之 追亡逐北 : 汉字发展史上的函数重载 -- 丁坎
追逐二字,现在没有什么意义上的分别。
这种意义上的无差别状态最晚在贾谊那时就形成了。
读过《过秦论》的朋友多半对
许慎先生在说文中这样解释:
以两字互训,可见他也认为二者没有意义区别。
当然这不能怪他,他生活的时代离汉字起源的时代已经有相当距离,没有接触到早期的文字运用资料。殷墟甲骨文字出土后,文字学家们接触到了原始的文字资料,拥有了比许慎更好的研究条件,所以能看到他看不到的东西。当然,正如机会只属于有准备的头脑,资料也只属于有洞察力的慧眼。杨树达先生就是个独具慧眼的人,他能从追逐二字的甲文字形
中判断出,逐专用于豕,而追专用于師的左部,即师,师即众也,如兴师动众。(这个有更详细的解释,此处略去。)
也就是说,追是用于人类的,而逐是用于动物的。
这个判断,通检甲骨卜辞,无一不合,凡是追人都是用的追字,而凡是追动物,不管是猪,马还是鹿都用的逐字。
杨树达先生的发现得到了学界交口称赞,被誉为创获,定论。
追逐二字由泾渭分明到合二为一所经历的历程,用程序语言的眼光来看,就是一个函数重载。
什么是程序语言中的函数重载呢?
函数的输入值,即变量,具有不同类型,比如说
int 整型, float 浮点型等等。
我们举最简单的例子,比如说要求一个数的平方。
在早期的程序语言里,这需要:
写一个函数 square_int(), 来接受整型变量作输入值。
再写一个函数 square_float(), 来接受浮点型变量作输入值。
但是这样对用户很不方便,当他们想求一个数的平方时,必须首先分辨这个数的类型,而这种分辨对于要用户要实现的功能又没有什么意义,对用户来说纯粹是多此一举。
他们的愿望就是一个简单的函数square(), 既可以接受整型变量,也可以接受浮点型变量。
这个愿望被后来的程序语言研究者给予了满足,他们把分辨类型的工作从用户那里转移给了
编译器,用户可以把不同类型的变量输入同一个函数,而编译器确定类型后再执行相应的操作,这就是函数重载(overload)。
用这种眼光来看,追逐二字原本是两个函数:
追:
void 追 (人 A)
{
while(自己与A的距离不为零)
{
沿自己与A的连线向着A奔跑;
}
}
逐:
void 逐 (动物 A)
{
while(自己与A的距离不为零)
{
沿自己与A的连线向着A奔跑;
}
}
这跟那两个平方函数一样很累赘---追谁还不是追,还不是以目测和奔跑为实现手段,所以啊,人们用着用着就搞出了函数重载,
追,逐,追逐都可以不加区别地接受动物和人类两种类型的变量。
再解释两句:
我们在说话,写文章的时候,相当于用户。
而在听人说话,读文章的时候类似于编译器---别人的话和语言就象程序一样在我们的脑海里复现。
本来是当讲话者想说追或逐的时候,要首先判断对象是人还是动物,根据对象选择用追字还是逐字。而听
话者一听追还是逐,不等后面的字出来,就已经明白了对象是人还是动物。此处分辨的负担在说话者。
函数重载后,
当你想说追或逐的时候,不在需要分辨对象类型,而把分辨的负担留给了听讲者---此时他不能再根据追或者逐来判断对象,而必须竖起耳朵听下文。
献花还债
非常详细和清晰地解释了,文字在语言交流过程中,传达者和被传达者之间的内容、含义的变化。
叫您为XS,我真没有叫错。可惜,您就不收我这学生!
不仅研究中国语言,还研究编程语言。
关于“追逐”我还有个疑问。从现在的字形上看,实际上很容易猜出来“逐”是针对动物的,“追”字不那么容易,但如果知道是对应“师”,那还是能猜出来。我的问题是,为什么许老先生没看出来呢?是不是因为他治学严谨,在没有看到最初的字形的情况下,没有乱讲,采用了最保守的解释?
豕就是猪。追猪能代表追所有的动物?为什么不是追马,不是追狗,而是追猪?
如果说猪是最早被人类驯养的动物。都已经驯养了,还追什么?而且狗被驯养的历史也不短啊。
如果说猪是早期人类能够追得上的动物,那么马又是怎么被驯化的呢?
反过来说,追人的追是人追人还是动物追人?
俺觉得逐和猪的发音相近,其实表明远古时代大家经常在追赶猪或被猪追赶。头猪二熊三老虎,野猪发狠是很厉害的。所以就把这种跑来跑去的行为拿来作这种动物的名字了。
呵呵。玩笑而已,老兄不必认真。
此处称追的右部为X,
说文有:
可见许慎知道X是什么意思,只不过他那个时代追逐的用法已经没有明显区别了,所以他没有意识去分辨它们。
错过了辨识字源的机会。
写帖子的时候因为想起追亡逐北这个成语,追逐并用,很明显地表现了函数重载,所以偷了个懒,直接说最晚在贾谊的时代。
(这个时代已经在许慎之前了,可以解释说文的失察。)
而早到什么时候呢,查了一下,发现在先秦文献中函数重载已经完成了。
------孟子 尽心下
而左转中有多处逐人的记载,最有说服力的是:
------- 左传 文公七年
那么,山海经中的 夸父与日逐走 就不足为奇了,与之
论语还有往者不可谏,来者犹可追。,
既然是玩笑,我就不当真了,稍微说说:
字形上看得分明,足形在豕形之后,很清楚是谁追谁。
由在后的位置关系来表示追逐,这在现代英语中也得到了保留:
That boy's always in trouble - the police are after him again.
多谢解惑。把你解答帖和我的问题帖标题合起来就成了:许慎其实是知道“原来丁兄是IT人士”的。许老先生在天之灵有知,一定会感激丁兄今天所做的工作的。
许慎先生是知道的---我不是IT人士。
至于这些帖子嘛,我不过是做个搬运工而已,把文字学家们的成果介绍一下。
好东西应该分享。
这个甲骨文里很难说谁在追谁吧?如果以足和豕的位置而论似乎说猪追人也不为过。英语和汉语的语法有类似,但也有很大的不同。“追亡逐北”没有说成倒装的“北逐亡追”的用法吧?
追逐二字虽然互训,但逐被用到的地方大多略有贬义,例如 “逐客令、放逐、驱逐、逐利” 等等。
当然也有例外,如“笑逐颜开”。
既然认了真,我就好好讲讲,为什么是人追猪,而不是猪追人。
先看字形
人的足形符号是脚趾向前的,如果是猪追人,就应该把猪的头和人的足同时调一个方向。
这是没有丝毫怀疑余地了,看看下面两个字就知道了。
各,即到。
出
到一个地方,脚趾指向接近那个地方的方向。
而出一个地方,脚趾指向离开那个地方的方向。
对比这两个字,看看脚趾是在逼近猪还是离开猪,就知道是人追猪还是猪追人了。
猪追人:猪的头逼近人的脚后跟。
人追猪:人的脚趾接近猪的尾巴。
本来是想单独写一篇的,现在也懒得写了,就这样给出来吧。