转载

昨天、今天、明天:从一道逻辑谜题看汉语中的反事实条件句

在网上看到一道有意思的逻辑谜题:“已知:如果昨天是明天,那么后天是星期天。问:今天是星期几?”

如果这道题用英语出,可能是这个样子的:“Given that if yesterday were tomorrow, then the day after tomorrow would have been Sunday, what day is today?”

首先我们要明白这道题问的是什么。

时间是流动的。在流动的时间中,每一天都可以作为计量时间的原点,也就是“今天”。前天、昨天、明天、后天,这些浮动的时间表示,都是相对于“今天”这个原点而言的。确定了原点,也就确定了一个相对的参照系。

昨天肯定不是明天。按照黑格尔他老人家的观点,把一个矛盾命题化解于无形的最好方法就是引入新的维度。昨天居然是明天,那么这两个词一定不是在一个参照系下说的。把昨天设定为明天,实际上是假定了两个时间参照系的存在,而且这一设定本身就是在两个参照系之间的转换——新坐标系里的昨天是旧坐标系里的明天,也就是说,在新坐标系里,每一天都比旧坐标系里相应时间标度的晚了两天。

此外,既然提到了星期天,说明还有不用漂浮不定的“今天”定位的第三个坐标系,也就是“绝对坐标系”。

用坐标系的语言把问题再严谨地问一遍,就成了“已知:如果新坐标系里的昨天是旧坐标系里的昨天,那么新坐标系里的后天就是绝对坐标系里的星期天。问:旧坐标系里的今天是星期几?”

旧参照系

前天

昨天

今天

明天

后天

新参照系

前天

昨天

今天

明天

后天

绝对参照系

星期天

既然在新坐标系里,后天是星期天,那么比后天早两天的今天就是星期五。再折算回旧坐标系的今天,还要再早两天,也就是星期三。答案是星期三。

上述推理过程可以用公式来表示:设旧参照系的“今天”为T日,新参照系的“今天”为S日,“X日是星期i”表示为X=i mod 7(i=0时为星期日)。那么题目所给的已知条件为:

(1)S-1=T+1

(2)S+2=0 mod 7

所问问题是:T=i mod 7, i是多少?

由(1),T=S-2。代入(2),得

(3)T+4=0 mod 7,即T=3 mod 7。答案是星期三。

让我们回到语言,看看英语和汉语在表达两个坐标系时各自使用的语言学手段。

在英语里,题目使用的语言学手段是“反事实条件句”。反事实条件句把我们带到一个新的可能世界(如果有的话)、新的参照系(如果有的话)。我们的话题暂不涉及可能世界,那么我们就把焦点对准参照系吧。

在英语反事实条件句“If yesterday were tomorrow”中,主语是新参照系里的时间标度,表语是在其他参照系(旧参照系或绝对参照系)里的时间标度,谓语动词使用的是虚拟语态。由于有这样一些显性的语言学手段,所以以英语为母语的人,对于何时进入哪一个参照系是不糊涂的,语言学提供的形式标记给了他们进入各个参照系的通行证。

在汉语反事实条件句“如果昨天是明天”中,并没有像英语中“反事实条件句”这样显性的语言学手段。汉语中无论是否反事实,都不影响谓语动词的形态。因此,反事实的“是”和正常的“是”没有形态上的区分;要判断这个“是”是不是反事实的“是”,还需要使用常识。反事实坐标系有可能是常识而不是语法赋予的,这是汉语不同于英语的第一个不同点。

在英语里,从反事实的假设世界回到正常的世界,只要动词的形态变化一转,变成现在时叙述,就一切OK了。虚拟语态的结束同时也是反事实坐标系漫游的结束,回到了正常的坐标系。所以,当已知部分陈述完,进入问题部分问到“what day is today”的时候,使用了is,表明漫游结束,该醒醒了。

在汉语里,从反事实的假设世界回到正常世界,也不是通过形态变化来揭示的。我们有的只是“语段开关”。语段开关可以是标点符号,也可以是一些小词,比如跟“已知”对举的“问”,就可以把参照系从“已知”所提示的新参照系拉回到旧参照系来。如果还觉得不够强,可以把“问”说成“现在问”,乃至“回过头来,现在问”。

总而言之,我们在汉语中,反事实世界的进和出不是不能表达,而是不像英语那样通过形态的变化来表达。我们需要综合使用常识和语段开关。语段开关是一个尤其要重视的语法现象。

下面我们单独来分析“是”,为什么在反事实场景下,它的左面相对的是反事实的新参照系,而它的右面相对的是符合事实的旧参照系。(英语的be及其各种形态变化同理,我们先以汉语的“是”为靶子。)

我们知道,按照传统说法,“是”有三种用法,分别相当于集合的“属于”、“包含”和“相等”。第一种是元素对集合的,第二种是集合对集合的,第三种是元素对元素或者集合对集合的。但是传统说法并没有涉及参照系的问题。

在涉及不同参照系的情况下,“是”出现了第四种用法——赋值。学习过计算机程序设计语言的人都知道,所谓赋值,就是把一个已知的东西赋给一个待确定的东西。在本文所说的场景下,昨天、明天等词语都是已经确定的,待确定的只是它的参照系。于是按照赋值的理解,“是”的右边是已经确定的,也就是说连同词语和参照系都是确定的,只有旧坐标系满足这个条件。“是”的左边是待确定的,就留给新参照系了。

对“是”的赋值理解,在反事实陈述中只不过凸显了出来,其实在正常的、非反事实的陈述中也可以见到:比如在角色扮演游戏中,可以说:你是张飞,他是关羽,我是刘备。比如手绘地图,边画边说:这是荆州、这是江夏、这是柴桑、这是赤壁。这都是在赋值,都是在给未确定的东西赋予确定的内容。

小小的一个逻辑谜题,居然包含了这么多语言学上的道理,没想到呀。

原文  http://blog.sina.com.cn/s/blog_729574a00102wrd3.html
正文到此结束
Loading...