最早碰Prolog是闲来好奇。话说回来那时写C和Python写顺了手,脑子里全是"先怎样、再怎样"的指令,像在给机器一道道派活。直到看见有人只用十几行事实和规则就把数独解了出来,没有循环,没有半点赋值的劳碌,只是淡淡告诉程序"什么是真的",余下的路让推理机自己去蹚。
那种松快很难说清,像把一直攥着的拳头悄悄松开。后来我拿它理家谱里的人物关系,几个parent加几条规则往那一摆,谁是谁的长辈、谁与谁同出一源,查起来比几十行嵌套循环干净太多;逻辑都摊在明处,藏掖的bug反倒无处落脚。
这脾气后来竟渗进我零碎写的Python小脚本里。先想明白约束,再谈怎么实现,代码自己就轻了。倒不是非赖着Prolog不可,只是换了种眼神看问题,连写程序都添了点留白的余地。