mini-kanren语言具有四个条件运算符:conda
,conde
,condi
和condu
(描述为here)。我知道有两个可用于Racket的小型kanren库(均已描述here)。他们都没有实现condi
。
我的印象(minikanren.org称之为“理性计划者”的阅读过程为“书”的一半)是condi
很重要:它是通过交织分支来“公平脱节”的唯一条件,因此您不会陷入无限循环的分支中,而当其他分支确实终止时,分支永远也不会终止。
编辑:我自己here可能已经实现了condi
。在“合理的计划程序”中,conde
与condi
的不同之处仅在于mplus
中的mplusi
的最后两个参数被翻转,因此我实现了这一点。但据我所知,它的工作方式不比conde
更公平。