每次有人问我最喜欢哪门语言,都以为我会报一个跑得最快的或者语法最漂亮的。说实话答案有点偏门,是一门逻辑语言,它几乎逼我把整套思考方式整个翻过来。
它不教你怎么算。你只管声明什么是对的,规则是什么、事实是什么,剩下的 solver 自己去找路。这种 declarative 的玩法我第一次写完就愣了,才发现自己一直被训练成命令式地走路:先迈哪只脚、拐几个弯,一步步走到头。而这门语言只让我描述目的地,路线它自己兜。
严格来说挺上瘾的,后劲也不小。那套倒着想的视角后来悄悄渗进我写每一段代码时的本能里。现在碰到问题,我会先问自己最后什么必须成立,才去想步骤该怎么排。这种从目标反推事实的习惯,比语言本身留得更久。