「老四,你听说老大的事情了吗?」老六问我。

其实我是知道的。只是这个世界上并不是所有的事情都能坦荡的说出,关于老大的就属于这类。我们宿舍一共六人,搬进来当天按照年纪大小去排了个顺序。老大因为留了一级所以比我们都要大,长相也确实有点老成。至于留级的原因众说纷纭,即便做了一年的室友我们也不是真的清楚,也因为关系太好反而不方便把事情追问的太深,只是等他有朝一日主动吐出心中的苦闷。

「什么事情?」我只能假装不知道。

「老大死了。」

「什么?」我是真的吃惊了。这和我知道的不同,我以为他嘴里的事情是老大从公安局被放了出来。明明我下午还见到老大一个人悠然自得的踱步进了宿舍,不可能几个小时就死了吧。

「真的,我刚才去教务处的时候听到主任打电话。电话的内容就是告诉学校老大死了。」

「你胡说什么呢。」刚洗完澡的老二进来,之后紧跟着老三和老五。

「是真的啊,我听的清清楚楚。」老六情绪有点激动。他一直是这个性格,嘴里不把门,也易怒。

「老大被退学的事情还没有搞清楚,你就又在这里继续造谣。」老五说。

老大确实是被开除了,这种花边消息有个半天时间就能传到整个学校人的耳朵里。一周前老大和几个朋友去KTV玩,中间不知道老大从哪找来个小姐,其余的几人就行个方便提前离场。结果第二天早上起来发现小姐死在了附近的宾馆,没有登记人的信息,也没有监控录像。本来这个事情就可以这么悄无声息的过去,只是有人到公安局举报说老大前一晚和这个女的在一起。警察来学校核实情况时偶然提及举报人是老大当天在场朋友中的某一个,至于具体是谁我们都不清楚。第二天老大就被公安局带走调查,当天学校就把老大开除了。这是学校所有人都知道的故事,但是他们不知道老大的几个朋友就我们五个室友。也就是说,我们五个人中有老大被开除的罪魁祸首。如果老大真的死了,那一定也和我们五个人中的某个有关。对于这件事情我们却都是讳莫如深,没有过讨论。

「老六,具体说说怎么回事?」老三是我们几个人中情绪最稳定的,从来没见他有过什么大起大浮。有的时候我在想,假如世界末日来了,老三也是那个心平气和甚至四平八稳等待死亡的人。

「是这样,我刚才去教务处取材料。刚说了两句主任就接了个电话,我也没有离开,就在边上默默的听着。第一句我就听的清清楚楚,是说老大死了。就死在昨天晚上,在看守所内用一根钢笔刺穿了喉咙,等急救车赶到的时候就已经没了生命体征,按照其父母的意思就是明天草草的火化了,也不要张扬了。另外……」老六突然停住了话,转而看着我们。

「另外什么?快说啊!」老五激动的问到。

「没什么,估计快熄灯了,先睡吧。」老六说的没错,我看了一眼手表,十点熄灯,只有3分钟了。我们也没有继续追问,收拾了一下就上了床,还没等躺好灯就灭了。

我稍微沉浸一下思绪,回忆了在KTV的那个晚上。我记得很清楚,当时老大喝的非常开心,出去了趟就领了一个穿着裹身红裙子的女人。看年龄比我们大了有至少十岁,脸上也有了并不雅观的褶皱,但也是颇有韵味。这个年纪的男生总会喜欢成熟且有韵味的女人。之后的记忆开始被酒精渲染了一层浓雾,好像老二在和老大打趣,老五对女人动手动脚,我和老六在一旁唱歌,老三在玩着手机。没过多久老大就示意他要完成某个重要的仪式,我们几人就悻悻离去。

「现在可以说了吧。」老五继续问,其实我们每个人都想知道有什么事情。只是我很清楚老六在说谎,下午打水的时候分明见到老大进了屋子,当时还特地追过去问候一下,可是屋子里也没有看到人。我脑子里的事情是觉得老大以后不打算再理我们。他在刻意躲避着什么,可能他已经知道了谁是那个加害于他的人,又或者不知道就干脆和我们断了联系。

「就是,老大死前留了一封信,说知道是谁陷害他了,要报复。」

陷害这个词用的非常有趣,难道老大没有杀那个女人吗?此时我分明听到了一声怪笑,只是夜黑的过于张扬,无法辨析是谁。

「骗子!你就是想挑弄是非!」老五嚷道。

「是啊,下午我们分明见到了老大。」说话的是老二:「我中午和老五打完篮球后想去门口商店买点东西,正巧看到老大进校门,我们两个喊了几声老大也没答应。估计要么是没听到,要么是觉得生气不打算理我们了吧。但确定老大肯定没死,我们是亲眼见到!」

「这么说,我下午好像也见到了老大。我下课的时候隐约见到老大在宿舍周围徘徊,老六我记得那个时候你和我在一起呢吧。」说话的是老三。

「是啊,之后我去教务处就听到说老大死了,所以咱们估计是看错了吧。毕竟就是一件普通的T恤,很容易认错。」老六接过话题。

「什么颜色的T恤?」我急不可耐地问到。

「红色的,从来没见老大穿过。只是红的有点不均匀,看起来蛮朋克的。」老六说。

「和我们看到的一样啊。」老五说。

「其实我下午也看到了老大,还看他进了宿舍,也是这么一件衣服。」我补充到。

「所以估计是有人造谣吧。老大那么命硬,肯定不会自杀的,你们也不要胡思乱想了,赶紧睡觉吧。」老三态度依旧最沉稳。

之后没有人再说话,所有人的思绪都构建了一个全新的世界,在里面一遍一遍的排演究竟老大是如何和妓女发生了关系并将其杀害。又想到在警察局里发生了什么,是不是被逼供,亦或直接坦白。但必定我们五个人里有人的心态不会平静,不会像我一样跟回味电影一般品鉴这个过程。我想那个人更多的是难以言喻的恐惧,这个时候一定把身躯缩作一团防止过度的颤抖把床弄出响动。我静静的听,也没有任何声音。

「老四。」有人叫我,听声音应该是老五。

「怎么了?」

「你今天下午打水了是吧。」

「是啊,有问题吗?」

「没事,就是我吃饭前发现水没了,又打了一次。」

「估计谁喝的太多了吧。」

「那睡吧。」

几分钟后隐约觉得门有响动,随后被人轻轻推开,又伸进来一个脑袋。从我的位置正好能看的清楚。是我们的舍管,每天10点半都会过来查寝,看看有没有人不在,看看大家是不是都在乖乖睡觉。

「1,2,3,4,5……6」。

「你好啊。」电话那边是久未联系的朋友小龙。

我和小龙属于那种一百年不联系,联系就一定有事情的关系。我想这次也是。我们电话里说了几句可有可无的寒暄后他就提出来要一起喝咖啡。本来我应该不会答应,上次他联系我是要卖保险,再上次是卖房子,估计这次十有八九也是类似的事情,但我却毫无迟疑的答应了。这个时候的小龙应该还不知道发生在我身上的事情。

我曾经有一份所有人都羡慕的工作,在毕业时我就拿到一家跨国企业的offer,之后在两年的时间里面我做到了部门经理,娶了一个貌美如花的老婆,又生下来一个可爱的男孩子。在毕业后的几年里,我是同学聚会的全部焦点,所有人都想从我这里抠来些油水,小龙也是。但一切的好情况止步一百天前。

我们经常低估生活的艰难。三个月前的一天傍晚我去和客户吃饭,交杯换盏间我也喝的浑浑噩噩。之后当我记忆再次清醒时已经蹲在了拘留所的小隔间里,我周围三个人,两个看似和我同龄的人是因为拦路抢劫被抓了进来,剩下一个一句话也不说。而我?警察说我聚众淫乱并且有吸毒嫌疑,当然,我没有,也完全不记得。

总之我妻子和家人到处托关系,在花光所有的积蓄后终于把我放了出来,只是我失去了曾经引以为傲的工作。这时候的我好像一只凄冷黑夜中的弃婴,看着街角灯光下人来人往,自己只能拼尽全力哀嚎,希望有个可怜人能过来将我抱起。几天后,妻子也向我坦白孩子并不属于我,她带着让我养了几年的小孩去了另外一个男人那里。

接到小龙的电话前我刚在阳台晾衣架上拴好了一个绳套,这个时候我只要把脑袋伸进去然后踢倒椅子就能结束这一切,但小龙的电话打消了我的念头。至少这个世界上依旧有人记得我。

我穿上最后一件干净的西装,擦拭了一下全是灰尘的皮鞋,把自己装的像个一表斯文的成功人士一般到了和小龙约的饭店内。是一家闹市区内的法式餐厅,这种级别的消费即便放在我最成功的时候也几乎不会去。我想如果小龙让我结账就直接跟他摊牌就好,反正对死亡我都没有一丝的恐惧,更别提胡搅蛮缠的服务员。

在我到达后小龙已经坐在了餐桌旁,和以往不一样的是小龙没有穿以前那件廉价西装,看剪裁和袖口就知道一定不便宜。也不知是因为环境还是因为西装,感觉小龙看起来格外精神。

「大哥,最近怎么样啊。」我刚一坐下小龙就笑着问我。

「还好……」

「什么叫还好?是被人扔到拘留所里面还好?是丢了工作还好?还是老婆跑了还好?」

「你!混蛋你说什么!」我万万没有想到小龙开始就会说这些。此时此刻我终于明白,小龙只是为了嘲笑我而已。我转身想要回家完成那个高傲的仪式。

「等等,大哥!你听我说!」

「你还要说什么?不就是想嘲笑我吗?」

「大哥你想多了,我是要帮你。」

「帮我?」我相信了。

「你坐下来听我说。是这样的,故事要从几个月前说起。当时我和你现在的境遇很像,我丢了那个本来就不太好的工作,老婆也跟人跑了。当时我落魄的差点死在自家的阳台上……」在他说话时,我只是默默的点头,这是一种叫做感同身受者的动作。

「然后啊,你看我现在,穿的名牌,敢在这种饭点来消费。你知道为什么吗?」

我摇摇头。

「我遇到了一个贵人,一个真正的贵人。他给了我现在的一切,或者说……」

「别说了,传销吗?我没兴趣。」我第二次站起身打算离开这里。

「大哥你听我说完啊,不是传销。是一种……魔法。」

「魔法。」

「是的,是一种魔法,一种闻所未闻的魔法。是这样,我当时在寻死前打算吃个饱,在饭点碰到了一个老人,他好像看穿了我的想法,就给我讲了一个冗长的故事。他说以前也经历过这类事情,之后有人救了他。之后他把那个办法传授给了我。」

「什么方法!」我迫不及待的问到。

「是这样。」小龙说着从兜里拿出来一把刀子,大约有20厘米长,外表看起来和马路边卖的几十块钱一把的小刀没有任何区别。「大哥你看这个,所有关键问题就在这把刀子里。这不是一把普通的刀子,它有魔法。」

「魔法?」

「是的,很神奇的魔法,这把刀子不会夺取别人的性命,但是可以夺取别人的生活。」

我表示没有听懂。

「我当时拿到这把刀子也不相信,但想了想试试总比直接死掉好。我就拿着这把刀子找到了一个我非常羡慕的人,在一个不留神我就把这把刀子扎到了他的身体里。那一瞬间我还真的有点紧张。但之后一个星期里,我发现我陆续获得了一份我不敢想的好工作,也有了漂亮的老婆。这些都是因为这把刀子。」

他默默的看着我,我不知道究竟该回答什么,只能用同样的目光投了回去。

「现在,这把刀子给大哥了。你如果想做什么,就去做的好。话我就说到这里,再见。」小龙起身出了门。我一个人孤零零在桌子前坐了至少半个小时,脑内在拼命斗争究竟该不该相信这个荒诞不经的故事。

「傻子才信。」是啊,傻子才信。

我顺手把刀子装到兜里,打算回去继续完成那个美妙的仪式。就在饭店门口,我碰到了小磊。

小磊是我以前公司的同事,我们两个人从入职那天就是众所周知的竞争对手。这个时候小磊牵着一个足够漂亮的女士从一辆跑车下来,轻蔑的看了我一眼后说到:「好久不见。」然后高傲的挽着女士走了进去。

我在 0.1秒后就摸出来刚才小龙给我的那把刀子。

「我要你的生活。」

之后我只记得面前爬着被鲜血浸染全身的小磊,一动不动。那个惊恐的女士蹲坐在一旁,扭曲的面目没有丝毫美感。饭店里面本来享用下午茶的客人们都默默站了起来,几秒后就拼命四下奔逃,我觉得只过了5分钟就听到警笛的声音。在这个过程里我只是一动不动像一具蜡像一般目睹着这一切,回想刚才那个荒诞不经的故事。我真的是傻子啊。

「等等,好像我错过了一段很重要的记忆。曾经好像我也被一把刀子刺入过,但那把刀子不是这个样子的啊……」

「你听我说,这真的是最后一次了。这次的医生是美国回来的,听说拿过这个领域很多的奖项,好不容易回国一次我到处托关系才找到他的,求求你了。」

女友在一旁央求我去看医生,而我在专心玩着游戏。大约在一年前她不知道发了什么疯,突然觉得我有精神问题,让我到处去看心理医生,一口咬定了我有心理疾病。当然我都去了,并不是因为我觉得自己有问题,而是我相信她有问题。所以每次去看心理医生的时候都要提前跟医生打好招呼,告诉医生真正的病人是她而不是我。几次下来医生的诊断书说,她有严重的精神分裂和妄想症。

今天也是,我刚刚联系了一位在在美国小有名气心理医生,这几天碰巧要在国内做巡诊,我花了大价钱托人才联系到,终于答应了和我们去聊聊,帮我看看女朋友的病。但女友不知从哪知道了这个消息,就和以往一样说有病的是我,说是给我联系的医生。我也并不打算争辩什么,这种剧情已经重复了整整一年,再有耐心的演员也该对此感到了疲倦。

我现在是无业状态,所以平时也没有什么事情,只是偶尔玩玩游戏,女友有工作,平日的家务活就都是我来做。在她对着我说了二十分钟以后我起身倒了一杯可乐告诉她可以,明天晚上好了,这是我和医生约好的时间。说完后她立刻归于平静,我就默默走到厨房做好晚餐。只是用餐过程却格外平淡,而她也仅仅低着头一语不发,饭菜不曾动过一口。

「你怎么了?」

「我没事。」

「你为什么不吃饭啊?是我做的不好吃吗?」

「不是,你被多想了。」她起身起来。

「你给我回来!你要是想跟我分手就直说啊,这都一年了。你到底在做什么?你如果看上了别人就跟我直说,不要这么一直奇奇怪怪的。」

「奇奇怪怪?你说我奇怪?」

「不是吗?你个神经病!」我挥动手臂把所有的碗筷打翻在地。她吓的啊了一声后回到房间里。

宛若狼穴的客厅内我直勾勾的望着房间大门。屋子里的她一定躲在被子里痛哭不已,嘴里咒骂着为什么喜欢这么样的一个男人,或者在厕所里,她每每伤心的时候会洗澡,然后一遍一遍着重复着曾经我答应过她又没有做到的事情。

而我也没有任何事情可以做,只能手足无措的望穿房门,然后默默的去收拾刚才被我弄了一地的饭菜。

有的时候我真的怀念我们曾经手牵手走在公园里的日子,但自从她犯病以后我们彻底告别了那种清幽的生活,在我记忆里除了在家和看病以外我们不曾同时出现在任何地方。

第二天晚上我直接到了医生那里,她也如约赶来。看样子刚刚下班过来,还穿着丑死的工作装。不知wei’he,在我记忆力好像每次来心理医生这里她都是这么一身并不讨好人的装扮,仔细看起来格外恼人。

「你吃饭了吗?」她先开口了。

「自己做着吃了一点,你呢?」

「我吃了点外卖。」

「又是牛肉饭吗?」

「是啊,你怎么什么都知道。」

「因为每次过来看医生你吃的都是牛肉饭。」

「是吗,我自己都没注意。」

这时候过来一位穿着裹身裙装的女士,看起来是类似助手的职位。跟我们说可以过去了。我看了一眼她,她也回了一个奇怪的表情,好像有什么重要的事情将要发生一般。与此同时我发现周围的人一直在用某种奇妙的眼光注视着我俩,好像我们做了某些极其违和的事情,只是好像在心理医生这里,没有正常人吧。

这次的心理医生看起来格外的不同,以往都是如同经历过抗美援朝的老大爷,看起来都是返聘回来的老医生。他们聊起来的话题并不是那么让人舒服,可能也没有受过正规的教育,只是靠自己职业经验的理解而已。这次的医生能看出来明显要正规的多,无论笔挺的西装还是刮的干干净净的脸颊。听说以前在国内的时候就在这个领域有所建树,之后去美国深造,这次只是受朋友所托回来看几个关键的病人,碰巧被我们赶上加了一个位置。

「你好,我已经知道你们的情况了。我看过你们……的病历。」他在说「你们」的时候犹豫了一下,估计是不想暴露真的病人是谁。

他和我们两个轮着交流了半个多小时后说道:「我觉得是这样的,你们的情况比较复杂。可能单纯的交流无法有明显的作用,这样,我给你开点药好了。」

以前的医生也曾经为我女友开过药,但她都不吃,甚至每次还强迫我吃,但看最近她的表现愈发严重,我决定还是试试。便回答:「好的医生。」这时候我看了她一眼,她笑了。

回家后和往常没有太大区别,我一如既往的走到厨房做饭。 重复了千万遍的生活也偶尔需要一些温情的调剂。今天情绪不错所以做的也要精致的很多,菜上桌以后女友坐到了桌子的另外一面。

「你今天心情很好嘛?」她问。

「是啊,你看都是你最喜欢吃的菜。」

「谢谢你还记得。但是……」

「但是什么?」

「但是你能不能先把药吃了。」

「呵呵,吃完饭再说吧。」我岔开话题吃饭,但是她仍然没有拿起碗筷的意思。

「你先吃了吧……」女友继续说。

「我知道了,赶紧吃饭吧,我辛辛苦苦做了这么多。」我好言相劝。

「真的,你先吃药吧。我害怕。」

「你怕什么!我为什么吃药!明明有病的是你,这一年来我对你百般忍让,但是你一直得寸进尺,我吃药?你先吃药吧!快去吃药!」我又一次把一桌的饭菜打翻在地。

这次她并没有走回房间,而是面无表情的走到柜子里拿出来刚买的药,倒了几片后又接了一杯水,走到我的面前。

「赶紧把药吃了吧。」

「滚!」我挥手打到了女友的胳膊,杯子和药片飞了起来,又落在地上。咣当一声,一地的碎片和水渍。

女友再次转身走向柜子,看样子打算重复刚才那个令人厌恶的过程,我实在忍无可忍的说道:「你别拿了,我没有病。你相信我好不好,我也不强迫你吃药了,赶紧睡觉去吧。」

「但是你真的有病啊。」

「我没有病!」我愤怒的用手敲击着桌子。

「但是,我已经死了啊。」

我被人盯上了。哦,不对,那不是人,是一个鬼。

这个故事要从十年前说起。那时候我还是一个中学生,每天除了上学外唯一的爱好就是和几个狐朋狗友去街机厅鬼混。邻居家有个叫雷雷的小男孩,大概比我小十岁,胖乎乎傻乎乎的,也不怎么说话,我对他唯一的印象就是流着鼻涕呆呆的看着我。当时他父母工作很忙,经常寄存在我家让我临时照看一下。平时也就成了我的一个小跟班。我走到那里他跟到哪里。我喜欢他吗?开玩笑,一个青春期的年轻人怎么可能喜欢这么一个小孩子跟着我,让我兄弟们看到还不笑死我。

为了解决这个问题,我每次都要破费一下。雷雷喜欢吃棒棒糖,每次他寄存到我家里托我照看的时候我都会给他买三五根棒棒糖,让他自己安心在家吃,好让我去玩。我和雷雷就形成了一种奇妙的默契,只要他棒棒糖不吃完,就一直会为我保守秘密。

这种平衡到我十八岁生日前止步。那是一个热的让人抓狂的夏日,我和往常一样给雷雷买了几根棒棒糖后就去了街机厅,玩的正开心的时候发现几个朋友都停下了手中的游戏朝门口看去,是雷雷,孤零零的站在门口,舔着棒棒糖看着我。

现在回想起来那是我人生中最尴尬的时刻,我只能装作他是一团恶臭的空气不予理会。

「那小子是不是看你呢?」

「什么啊!」我装作很不耐烦,但也清楚朋友并没骗我,雷雷肯定是出于某种原因来找我。

「肯定是看你呢,你看走过来了。」

是的,雷雷带着恶心的鼻涕走了过来。呆呆的看了我几秒钟后说到:「哥哥,怎么了?」

我愤怒的站了起来,看着他,吼了一句:「滚!」

雷雷像中了某种魔法一般呆立了几秒钟后一语不发的转身离开,我分明听到了出门后啜泣的声音。又过了一分钟后我才意识到自己冲动的后果,如果他父母或者我父母看到哭泣的他会怎么样?会知道我天天去街机房的事情,可能也知道我在抽烟的事情,可能还知道我在学校里做的一切坏事。

天呐。

我急忙跑了出去,甚至完全无法估计朋友们的看法。我一定要找到雷雷,否则可能我的好日子就此过去,人生中最开心的时刻终于要消失,以后在父母的眼里我再也不是那个乖巧的学生,我会变成邻居眼里的恶魔,要接受成千上万成年人在背后的指指点点。

终于,在离我家只有几个街道的小河旁我看到雷雷。一个人哭着慢悠悠的在往回家走。我的直觉在此时此刻告诉我雷雷的内心一定恨透了我,这个时候他应该在构思究竟用何种言语去告知我父母我的一百种罪状。我急忙跑了过去对雷雷说:「对不起啊,刚才是哥哥不对,不该对你发火。」

雷雷一语不发继续哭着往家走。瞬间恐惧和愤怒像两个乖戾的小鬼萦绕在我周围,甩不开,放不掉。

我把雷雷推入了河里。

之后的几天时间里我们整个小区的人都在四下寻找雷雷。当然作为唯一知情者的我也装作毫不知情加入了寻找的行列,但如果不是犯案者很难想象我的心态。我假装寻找,可私底下最恐惧的事情就是将其找到。

三年后,人们在河下游修建堤坝的地方找到了雷雷早已腐烂的尸体,匆匆将其下葬也没了下文,好像所有人都以为是一个单纯的孩子失足落入水下。

今天我之所以把这个故事再次拿了出来是因为,雷雷现在就坐在我面前。

我不清楚他现在究竟是什么,如影随影,可能就是小说里说到的幽灵提到的鬼。

他此时此刻挡在我和电视中间,坐在地上,流着恶心的鼻涕,呆呆的看着我。像十年前一样。我也不知道他究竟为何凭空出现,总之当我回过神来的时候他已经站在了我的面前,我更不知道又要用何种手段让其消失,同时有趣的是,我的妻子和孩子好像对其视而不见。

「那个,我说,咱们的电视是不是不清楚啊。」我试探妻子。

「没有啊,怎么了?」

「没事。」我又看了一眼只有一岁坐在玩具车里的儿子也没有任何异动。

看来我要看看精神医生了。

就这样,又过了半年的时间,从上班下班到电梯和浴室,甚至在和情妇偷情的时候雷雷都无时无刻的跟在我身边,我也已经习惯了这个变化。其实也没什么不好,反正不会伤害我。

人类的愚蠢在于经常对一些本应紧张的事情感到莫名的放松。

几日后我发现了他的目的很可能是我的儿子。几周前的一个晚上我在看球时发现他在一旁偷偷的看我儿子,我想他一定预谋了一个报复计划,把十年前我对他做的事情复制在我儿子的身上。然而我,作为一个男人,年轻时候我的一切错误就应该由自己承担,即便豁出姓名也要保护我的孩子,不过显然我从来没有对付一个死人的经验。

雷雷的鬼魂有个特点,就是只是在远处默默的看着我。在公司的时候一般站在我的办公桌远端,这个时候我可以利用电脑来做一些他不了解的事情。

在过去的一周里我联系了一位号称是本地的通灵人,我编造了一个自认为滴水不漏的谎话告诉他我小时候曾经目睹了一个孩子跳河但是因为不会游泳就没有施救,现在这个小孩子的鬼魂来找我。通灵人信了,但只是告诉我估计是有些话想跟你说,才会这么纠缠你又不伤害你。我们两个约好了今天下班见面,在他家。

下班后我就带着雷雷的鬼魂打车到了通灵人的家,看起来就像是每天在马路边遛鸟的老人,完全没有仙风道骨,更像是一个退休老干部。我问他能不能看到那个小孩,老人说不可以。但是能告诉我一个交流的办法。

他花了一刻钟时间完成了一个光怪陆离的仪式后给了我一碗浑浊的水,闻起来有浓烈的腥臭味。我微微皱了一下眉头就喝了下去。转头看看雷雷,好像隐约能听到他在说什么。我看着他流着鼻涕丑恶的嘴脸一步一步走进。

「哥哥,生日快乐。」

我认识一个女鬼。

16岁那年在一个磅礴大雨遮盖了城市的夜晚,我父母的车在城郊开出了国道,当警察发现的时候已经是两具冰冷的尸体。我清晰记得凌晨4点警察敲开我家门后,站在阳台上陪我望着依然淅淅沥沥的雨说:「这是天漏了吧。」

几天后我被寄放在了远方的姑姑家,从一个大都市直接到了五线城市的小县城里。整个城市没有了我熟悉的街道,没有我熟悉的同学,甚至连这个姑姑也是我第一次见到。但我们往往低估自己的适应生活的能力,无论生活在哪里也不过是柴米油盐酱醋茶而已。

这里和中国绝大部分县城并没有太大区别,破烂的街道、上世纪八十年代的穿衣品位和没有共同语言的同学们。一直在学校待了一个月以后我也并没有交到任何一个朋友,只是入学第一天大家好奇的围在我身边看看这个城市里来的人长的究竟什么样,估计发现我并没有三只眼镜也没有四条腿以后就对我失去了兴趣,我也并不打算和他们有更深入的交流。从此以后我像是一只游荡在校园内的孤魂野鬼,直到一天我发现自己并不孤单。

那依然是一个大雨磅礴的夜晚,我在山上闲逛了一天。当下山时雨水毫无征兆的袭来,我只能躲到山脚下的学校里。天天来这里上学,却从来没有认真打量过这所学校。在这么一个凄惨的夜晚看过去,好像把学校建在这里本来就是为了给从山上撤下的旅人们提供一个遮风挡雨的场所。

学校的主楼都是外透的走廊,我就和下课时一样,一个人趴在走廊的栏杆上。只是平时我可以看到熙熙攘攘的同学们在黄土操场上打闹,现在只有一样熙熙攘攘却也没有半点生的气息的雨水。

「同学。」

我分明听到了有人叫我。肌肉被紧绷的神经禁锢住,我无法挪动脚步,甚至不敢扭头去看一眼。

「同学?」

「你……好……」在说话中我微微扭过了头。面前是一位美的不可方物的姑娘,水汪汪的大眼睛,微微上翘的嘴唇和完美的脸颊,同样那纯白色的连衣裙和毫无血色的皮肤在让我第一眼就认定她绝对不属于这里。

「是不是吓到你了?」她继续说话,脸上依旧是淡淡的微笑。

「还好……」

「那就好,你好啊~」

「你好。你是?」

「我?我是女鬼啊。」

是啊,她是女鬼。这个平白出现在我面前的女鬼在几秒钟后就打消掉了我一切恐惧的念头。几句交谈后我基本认定她可能是我在这个偏远县城里面唯一的朋友,我确信我们一样的孤单无助,一样的需要一个倾诉的对象。

当夜我们互相交换了自己的故事。她叫小幽,和我一样生在大城市,因为父母工作太忙没有办法照顾她,干脆把她送回了老家,之后因为一个她不愿意告诉我的原因最终放弃了上学。在一个雨夜里她也成为了一具冰冷的尸体。

我问她:「死亡是什么感觉?」

她回答:「冷。」

分别时已经接近天亮,雨也早已没了踪迹。我们两个约好下周五继续在这里见面,继续交换心中的苦闷。

小幽如约而至并且给我带来了一个好消息。

她告诉我,她在那个世界见到了我的父母。父母都很好,让我好好学习开心的生活。他们会在那个世界一直帮我默默的祈祷。那是我父母去世后第一次哭泣,没有人真的坚强,只是没有找到一个合适的时间去脆弱。

之后的几年里,每周五的晚上我们都会约在学校内见面,多数时候她只是默默的听我讲白天学校里发生的事情,后来渐渐的我也开始帮她补习功课。说实话,我一直也无法理解为何要帮一个已经死去的人去补习课程,但面对开心的她,我无法拒绝一切的请求。在这个过程中我也并没有当她是一个女鬼,更像某种被臆想出来的好朋友。

我和小幽的交流从来没有离开过教学楼的走廊,每次都是我在太阳刚刚落山时就等在那里,或早或晚小幽总是会默默的走到我身后叫一句「同学」。期间几次我都想带着她去别的地方转转,像县城的街道上,像学校后面的山上。但我却没敢说出真实的想法,我承认在心中的某个地方依然忌惮她是女鬼的事实,我也承认其实安于现在的状态并没有什么不好。我和她无论风霜雨雪的站在走廊上,望着外面阴晴不定的天气,去聊一切能想到的话题。

人与鬼的关系是我们之间最安全的保障,鬼不会把我考试作弊的秘密透露给别人,人也不会把鬼活着时候偷钱的故事讲出去。我们就形成了一种并没有约束力并且坚固可靠的关系。如果她还是一个人类,我可能只是会每日远处观望这个美的醉人的姑娘。

如果说我学生生涯最大的秘密是什么,那一定是这个。

渐渐的随着跟她的交流,我也开始有了更多的朋友。在她的鼓励下我试着去认识周围的同学,去和他们聊天,去和他们一起学习,现在回想起来我当时走出自己内心的动力可能真的是小幽用了什么魔法一类的东西,一切来的过于自然,反而不是那么真实。

三年后我参加了高考。一个燥热的下午老师在电话里告诉我考了全县第一,这个成绩应该能报上大城市的好学校。我开心的忘记了那天是周五,只是和几个学校里的朋友一起在县城里最好的饭店疯狂吃喝了一晚上,当我浑浑噩噩到家里的时候天边已经泛着鱼肚白。第二天中午我醒来后就意识到自己犯了一个严重的错误,之后的几天我一直在构思如何和小幽道歉。这是我们认识三年以来我的第一次爽约。

又一个周五的晚上,小幽如约出现了在学校内。

我扭捏的走上去,低着头说道:「对不起。」

「没事的,你考上大学了吧,恭喜啊。」从小幽的神情里我没有读出来半点的难过,我想她可能是真心在祝福我。

「谢谢。」

「不客气啊,我准备了点吃的,我再帮你庆祝一次吧。」小幽的身后确实堆着几袋子吃的。

我们就这样一起吃着零食聊着天过了一个晚上,在第二天隐约太阳将要升起的时候,小幽决定离开。临走前我问她:「是不是我上大学以后就再也见不到你了。」

「不会的,我会去你那里找你的。」

「哈哈,那你可不要吓到我的同学啊。」

「全世界只有你能看得到我。」

一个月后我拿到了大学录取通知书,就是我梦寐以求的那所大学。又过了没多久我准备打理行囊正式离开这个我生活了三年的小县城,我甚至做好了永远不再回来的决定。

临走前一天还是一个周五,我问小幽:「你真的会去找我吧。」

小幽的回答依然肯定:「是的。」

但小幽欺骗了我。我离开这个城市以后再也没有见过她,开始的几个月里我甚至有过写信给她的冲动,但奈何我终究不知道要写给谁、寄往哪里。随着大学生活步入正轨,我又有了新的朋友,也交上了女朋友。关于小幽的记忆也渐渐的被沉入了心底。

之后的日子里我找到了工作,和女朋友分手,又下海创业,期间遇到了我现在的妻子,也有了一个可爱的孩子。距离我上次踏上这个小县城的土地已经过去了15年。

妻子曾经问过我初恋是谁,我只是告诉她是一只生活在学校里的女鬼,然后无论她如何继续追问都一笑而过。

如今我决定给这个县城捐款重新盖一所新的校舍,更大也更漂亮。在老校舍拆除的前一天晚上,我还是回到了那里,碰巧也是一个周五。我在来之前无数次的幻想小幽会不会还在这里等我,只是我平白在走廊里坐了一夜。在看到太阳升起的霎那间,我回到了小幽等我的那个夜晚。我明白有的时候两个人只要内心彼此紧紧相拥,并不在意是不是真的在一起,互相默默的祝愿就是世间最大的爱意。

新校舍奠基那一晚我约了几个中学同学在学校里聚餐,交杯换盏间聊到了成绩下来的那天晚上,我们几个男生喝的烂醉。突然一个女同学冒出来了一句:「我那天和你们分开回家的时候碰巧路过了学校,见到小幽从学校里面哭着走出来。」

瞬间好像平白一颗核弹在我身边爆炸。

「小幽……」

「我听说小幽高考的成绩非常好,好像仅次于你啊。」另一个同学对我说。

「我记得录取的还是同一所学校。」

「对了,你应该不认识她吧?」最早说话的女生问我。只是我不知道该用何种言语去表达,只能木讷的看着他。

「是这样,小幽其实和你挺像的,从大城市来。只是说因为查出来一种叫做著色性乾皮症的病,根本不能见太阳,加上父母在外打工无法照顾她,就干脆给她送回了老家。跟我们上了一段时间的课以后因为身体问题就没有继续来。我们后来也只是偶尔晚上能见到她而已。说起来你当时坐的位置就是她的座位啊。」

「不能见太阳?」我依然没有明白究竟发生了什么。

「是的,开始回来的时候还好,之后越来越严重,据说见到太阳就会死。最厉害的是居然在这种情况下参加了高考,成绩也非常好,但……」

言语间好似周遭被黑洞所吞噬,唯独自己肌肉的颤抖清晰可见,我不可遏制内心的冲动,吼道:「但什么?」

「那个暑假后小幽的病突然恶化,没过多久就去世了。小幽最后住院的时候我们都去了,她跟我们说,希望每周五晚上能有人帮她到学校里,如果看到一个男孩就告诉他对不起。我们真的轮流按照这个做了几个月,但也没有碰到那个男孩。这个事情就这么过去了,我们也不知道是不是真的有那个男孩。」

夜里,我梦到了小幽,还是那身纯白色的连衣裙。我们没有说话,一声不吭的趴在走廊的栏杆上,看着太阳缓缓升起。

且行且珍惜。

当记忆再次回到肉体时,手机上的时间是2012年4月15日。

华盛顿,一个被樱花覆盖了街头的黄昏,我被花粉症折磨的独自在路边瘙痒着起了爬满红斑点的手背,浮肿的眼睛已经遮挡了一部分视线。几分钟前因为肉体的痛苦险些失去意识,现在虽然清醒了许多,可我也想不起究竟为什么在这里,这一身的装扮和随身物品无法唤起我对今天清晰的回忆。但并不是所有记忆都被抹去,我清楚的记得前面转角就是唐人街。街口的地方有一家卖体育用品的商店,一年前我曾经在这里买了一把没有缠线的网球拍,回去用这把球拍狠狠的打了我的前女友。之后我孤零零的站在客厅内,抚摸着流经脸颊的鲜血,遮挡了一些视线,就像现在,我知道这个世界完了。

10分钟后,我买了一张电影票和一小份哈根达斯冰激淋,坐在几乎空着的放映厅的最后一排享受难得的清闲。电影开始时我扫视了一下其他观众,在我前面四五排的地方有一个中年人带着两个孩子,他们可能是我休息唯一的阻碍,在中间靠右侧的地方还有一对情侣,他们比我会更期待电影的开始。

又10分钟后我开始意识到自己低估了花粉症的症状,呼吸愈发急促,气管开始痉挛,头也有了明显的胀痛感,四肢酸软,神经陷入了某种游离的状态中,隐约觉得好似脱离了肉体。我只能选择闭上眼睛,等着命运的安排,是死是活都好,反正人生已经渐渐失去了色彩,我的内心在黑暗中幽闭了太久,即便阳光再次来临也不太可能将其拯救,不如在这里画上一个句号,也算是一个不错的交代。

“喂。”
“嗯?”

我想要四下寻找声音的来源,第一眼就发现了一个不太让人舒服的变化。我低着头,微微睁开眼睛,猛然发现边上的座位多了一双大腿,那一定是一双女人的大腿,雪白的肤色踏着一双纯黑的高跟鞋,露出部分的脚趾甲被涂成了血红色。顺着腿一直看上去,是小茹。

“别睡了,起来好好看电影。”

小茹是我的前女友,也是我曾经的同学。我们两个在系里的一次Party后正式确定了关系,没多久她就搬到了我的公寓。渐渐的,时间摧毁了我对同居生活的一切向往,我发现她并不像表面看来的那么单纯,除了时不时抽烟、夜不归宿、严重酗酒外,真正让我无法忍受的是她开始在不停的嗑药,每天沉浸在虚构的脑内生活里无法自拔。我几次三番劝说让她停药,重新继续正常的生活,至少每日去上上课,和教授沟通一下课题,然后打个工找个稳定的工作。但她从来不为所动,继续在不知道什么地方和不知道哪里来的男人鬼混,然后当着我的面吃下一片药,暗示我这才是她的生活。

某个冬日的凌晨,她回到家。一身浓重的酒味,伏在我身上狂吐不止,我费劲力气把她衣服褪下帮她冲洗干净却发现有别的男人的痕迹。我问她干什么去了,她倒是很坦荡的告诉我和一个墨西哥人发生了关系。我把双手放到了小茹的颈部,我知道这个时候只要努力掐下去一切也都重归平静,只要我把她埋在不远的森林里没人能够发现。第二天我去警察局报案说女友失踪,也没有人会发现有问题,在大家看来我只是一个丢掉女友的学生而已。当然,最后和小茹上床的墨西哥人可能是最大的嫌疑对象,简直是一举两得,我兴奋极了。但我和小茹对视时,一切罪恶的念头也烟消云散,我知道我还爱她。没过多久她也渐渐恢复了意识,又从背包里拿出来一片致幻剂吃掉倒入我的怀里。
终于在三个月后的一天,我们开车到了华盛顿看樱花,在唐人街吃完非常不正宗的港式午餐后我走到边上的体育用品店买了一把网球拍,她问我:“从来没见过你打网球啊?”我说:“我决定开始打。”

之后记忆开始躁动不安,脑子里的神经好像突然有了自由意识,开始不受我的管控,肆意的在我的世界里作祟,我没有办法组织记忆,也没有办法平静的思考,这一定是那个坏女人害的。再次看到小茹的时候已经是血肉模糊的倒在客厅里,手上的网球拍已经微微变形。

“怎么了?”

“哦,没事。”我坐起来决定继续看电影,刻意回避了一下小茹的目光,我想没人喜欢和一个死人对视。在稳定了情绪后下意识的摸了一下手背,发现肿胀已经消失,眼睛也能够顺利看清屏幕,呼吸也恢复了往日的均匀。一切平静的让我不安。如同死神已经真是的降临,并且很客气的给了我一份时间表一般,某个黑暗的空洞把我对未来生活的期许化为了虚无,我唯一能做的就是看着黑暗一步步来临,稳扎稳打的吞噬掉我的肉体。

她到底为什么来找我?她不是死了吗?难道她是觉得一个人孤单所以又让我来陪她?她到底还是不是恨我?

我精神世界在某种层面上一瞬间变的异常健壮,只是并不是用来思考如何继续生活下去。转而去思考怎么死的更体面,我相信小茹一定会给我某种仪式,可能像极了非洲部落的祭祀,让我在死前像看电影一般重新回顾一下生前的罪恶。之后把我钉在烤架上,聆听我的忏悔,把每句话都镌刻在骨头上,如果顺利的话,可能能让我死个痛快。

好吧,反正这种颠沛流离的生活我也过够了。我也不想晚上再跟唐人街的小混混们去抢那几口劣质啤酒了,也不想不敢联系任何朋友。至少死亡能够让我觉得不那么孤单,至少我死前还有一个异性的肉体可以触碰,我下意识的拉了一下她的手。居然有温度,好像第一次Party时,她毫不羞涩的握住我的手大步走到人群中,接受友好和不友好的目光,那瞬间暧昧的味道依然难以释怀。

我的情感争斗一直持续到电影结束,拉着她来到停车场,这一年里上次我触碰异性还是三个月前的一个墨西哥妓女,当时我满脑子幻想的都是小茹雪白的肉体,那是我有生以来难得美好的回忆。但真的拉着她的手走在路上时,心里除了害怕也检索不到任何的思绪,偶尔有点情欲的念头也被死亡的恐惧瞬间浇灭。

我的车居然还停在那里!车是我和小茹一起选的全新的尼桑,现在看起来和一年前一样的新,甚至没有丝毫尘土。我要没记错当时开了也就不到1万Miles,后来跑路的时候应该让我留在了家里,难为她把车开了过来。这是我对世界最留恋的东西,男人对于这个工业产物的情感可能超过对多数异性。

车居然能启动!而且我的iPod也依然停留在原来的位置,继续播放的是我最后一次听到的B.o.B和Hayley Williams的Airplans。就是在小茹死前那天,我听了一路,长久幽闭的记忆也被这首歌再次唤醒,对小茹悸动不安的愤怒也形成了某种具体的意象,好似平白在小茹的身上立了一个标靶。这一切又回来了。

脑子里一直回荡着一句歌词:Somebody take me back to the days。

路上小茹几次要跟我搭话,我都没有回应,稍微用余光看过几次她,貌似有点不开心,好像有某些重要的事情想告诉我,但又难以启齿,只是事到如今我也不在关心。

到了公寓的楼下,平时停车的位置依然空着。说起来在我逃离这里之后也没有见过任何报道说这里曾经死过人,不知道是被人刻意掩盖,还是根本没有人发现里面躺着一具已经腐败的尸体。这跟我想象中的完全不一样,在我的故事里,第二天就会有头版新闻说一女留学生被杀死在公寓里,之后我的照片和名字也会贴在大街小巷的电线杆上,可能用不了多久就会被轻松擒拿归案。这时候又会冒出来很多看似有道理的报道分析为什么一个高材生会去杀人。想到这点我笑着看了一下小茹,告诉她我知道之后将要发生的事情,已表现我的坦荡。但她并没有看我而是从后备箱里拿出了一只网球拍。

“准备的真好啊。”

“你说什么?”小茹那血红色的嘴唇微微上扬,我能清晰的分辨出舌头在里面蠕动,可能她在思索几分钟后就有一顿美味的晚餐,或者想要把尖锐的牙齿深深的插入我的肉体,吸食我本来已不多的精气。

“没事,走吧。”我拿出钥匙去看开门,这一年钥匙都躺在我的外衣兜里,为的就是有一天我想她了,能够回来去看她。

屋内空空荡荡,没有尸体。我之前曾经做了一百万种的幻想,其中一半的是屋子里躺着一个已经腐烂掉的尸体,在我进门的瞬间扑倒我的胸前,用满是腐臭的嘴狠狠的咬住我的喉咙,另外那个美丽的小茹掏出了网球拍,用尽全力的击打到我的头部。当警察来临的时候,只能发现惨死在客厅的我,和一句早已腐烂掉的尸体。想起来也很不错,冥冥之中有些事情早已注定。

我打开电视和Xbox 360,里面依然是我之前玩过的《战争机器》,杀掉小茹前一晚我们一起玩过,只是小茹觉得太血腥,后来我们陷入了争论,她认为没有人能够真实面对这种场景却不为所动。

在小茹把球拍放到沙发边上后就走到了厨房,从冰箱的冷藏室里取出一只提前解冻过的鸭子。

我想:“这是一个机会。”

10分钟后,小茹血肉模糊的倒在客厅里,手上的网球拍已经微微变形。我坐在沙发上吃下去最后一片致幻剂,看了看手机,时间是2011年4月15日。

我知道这个世界完了。

自然指数函数的泰勒级数展开:
$$ e^x = 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \frac{x^4}{4!} + \cdots $$

正弦函数的泰勒级数展开:
$$ \sin(x) = x - \frac{x^3}{3!} + \frac{x^5}{5!} - \frac{x^7}{7!} + \cdots $$

余弦函数的泰勒级数展开:
$$ \cos(x) = 1 - \frac{x^2}{2!} + \frac{x^4}{4!} - \frac{x^6}{6!} + \cdots $$

自然对数的泰勒级数展开:
$$ \ln(1 + x) = x - \frac{x^2}{2} + \frac{x^3}{3} - \frac{x^4}{4} + \cdots $$

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
; 计算阶乘
(define (factorial n)
(if (= n 0) 1
(* n (factorial (- n 1)))))

; 泰勒级数展开:e^x
(define (exp-taylor x terms)
(if (= terms 0)
0
(+ (/ (expt x (- terms 1)) (factorial (- terms 1)))
(exp-taylor x (- terms 1)))))

; 泰勒级数展开:sin(x)
(define (sin-taylor x terms)
(if (= terms 0)
0
(let ([term-num (sub1 (* 2 terms))])
(+ (* (if (even? terms) -1 1) (/ (expt x term-num) (factorial term-num)))
(sin-taylor x (- terms 1))))))

; 泰勒级数展开:cos(x)
(define (cos-taylor x terms)
(if (= terms 0)
1
(let ([term-num (sub1 (* 2 terms))])
(+ (* (if (even? terms) 1 -1) (/ (expt x term-num) (factorial term-num)))
(cos-taylor x (- terms 1))))))

; 泰勒级数展开:ln(1 + x)
(define (ln-taylor x terms)
(if (= terms 0)
0
(+ (* (if (even? terms) -1 1) (/ (expt x terms) terms))
(ln-taylor x (- terms 1)))))

(exp-taylor 1 10) ; e^1 的近似值
(sin-taylor 1 10) ; sin(1) 的近似值
(cos-taylor 1 10) ; cos(1) 的近似值
(ln-taylor 0.5 10) ; ln(1.5) 的近似值

最基础的是拉普拉斯展开。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
; 计算行列式
(define (determinant matrix)
(define (remove-row-col m row col)
(for/list ([r (in-range (length m))]
#:when (not (= r row)))
(for/list ([c (in-range (length (m 0)))]
#:when (not (= c col)))
(list-ref (list-ref m r) c))))

(cond
[(= (length matrix) 1) (list-ref (list-ref matrix 0) 0)] ; 1x1 矩阵
[else
(for/sum ([i (in-range (length matrix))])
(let ([sign (if (even? i) 1 -1)])
(* sign
(list-ref (list-ref matrix 0) i)
(determinant (remove-row-col matrix 0 i)))))]))

(define example-matrix [[1 2 3] [0 1 4] [5 6 0]])
(determinant example-matrix) ; 应该返回 -1

但是这么写效率很差,可以使用高斯消元法。高斯消元法通过将矩阵转换为行最简形(或阶梯形),然后计算对角线元素的乘积来计算行列式。这种方法的复杂度远低于直接使用拉普拉斯展开。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

(define (swap-rows matrix row1 row2)
(let ([temp (list-ref matrix row1)])
(list-set matrix row1 (list-ref matrix row2))
(list-set matrix row2 temp)))

(define (scale-row matrix row factor)
(list-set matrix row (map (λ (x) (* x factor)) (list-ref matrix row))))

(define (add-scaled-row matrix src-row dest-row factor)
(list-set matrix dest-row (map (λ (x y) (+ x (* y factor)))
(list-ref matrix dest-row)
(list-ref matrix src-row))))

(define (gaussian-elimination matrix)
(let ([n (length matrix)])
(for/fold ([det 1]
[m matrix])
([i (in-range n)])
(match-let* ([(pivot-row (for/or ([r (in-range i n)])
(when (not (zero? (list-ref (list-ref m r) i)))
r)))
(pivot (list-ref (list-ref m pivot-row) i))]
(unless pivot-row (return (values 0 m)))
(when (not (= pivot-row i))
(set! det (- det))
(set! m (swap-rows m i pivot-row)))
(set! m (scale-row m i (/ 1 pivot)))
(for ([j (in-range (+ i 1) n)])
(set! m (add-scaled-row m i j (- (list-ref (list-ref m j) i)))))
(values (* det pivot) m)))))

(define (determinant matrix)
(let-values ([(det _) (gaussian-elimination matrix)])
det))

(define example-matrix [[1 2 3] [0 1 4] [5 6 0]])
(determinant example-matrix) ; 应该返回 -1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
(define (tokenize s)
(regexp-match* #px"\\(|[0-9]+|\\+|-|\\*|/|\\(|\\))" s))

(define (parse tokens)
(define (parse-expr tokens)
(define-values (expr rest-tokens) (parse-term tokens))
(cond
[(null? rest-tokens) expr]
[(equal? (first rest-tokens) "+")
(define-values (rhs rest-tokens2) (parse-expr (rest rest-tokens)))
(values `(+ ,expr ,rhs) rest-tokens2)]
[(equal? (first rest-tokens) "-")
(define-values (rhs rest-tokens2) (parse-expr (rest rest-tokens)))
(values `(- ,expr ,rhs) rest-tokens2)]
[else (values expr rest-tokens)]))

(define (parse-term tokens)
(define-values (expr rest-tokens) (parse-factor tokens))
(cond
[(null? rest-tokens) expr]
[(equal? (first rest-tokens) "*")
(define-values (rhs rest-tokens2) (parse-term (rest rest-tokens)))
(values `(* ,expr ,rhs) rest-tokens2)]
[(equal? (first rest-tokens) "/")
(define-values (rhs rest-tokens2) (parse-term (rest rest-tokens)))
(values `(/ ,expr ,rhs) rest-tokens2)]
[else (values expr rest-tokens)]))

(define (parse-factor tokens)
(cond
[(number? (string->number (first tokens)))
(values (string->number (first tokens)) (rest tokens))]
[(equal? (first tokens) "(")
(define-values (expr rest-tokens) (parse-expr (rest tokens)))
(when (not (equal? (first rest-tokens) ")"))
(error "Expected closing parenthesis"))
(values expr (rest rest-tokens))]
[else
(error "Unexpected token" (first tokens))]))

(first (parse-expr tokens)))

(define (evaluate ast)
(cond
[(number? ast) ast]
[(list? ast)
(match ast
['(+ lhs rhs) (+ (evaluate lhs) (evaluate rhs))]
['(- lhs rhs) (- (evaluate lhs) (evaluate rhs))]
['(* lhs rhs) (* (evaluate lhs) (evaluate rhs))]
['(/ lhs rhs) (/ (evaluate lhs) (evaluate rhs))]
[else (error "Unknown operation" ast)])]
[else (error "Invalid expression" ast)]))

(define (calculate-expression expr)
(evaluate (parse (tokenize expr))))

(calculate-expression "(1 + 7) * 13 - 1") ; 应该返回 103

tokenize 函数将字符串分解成词法单元,parse 函数构建语法树,evaluate 函数对语法树求值。