除了将 miniKanren 用作与 Prolog 类似的实用的嵌入式逻辑编程语言之外,miniKanren 还被用于“关系”编程的研究。也就是说,在编写具有数学关系而不是数学函数行为的程序时。例如,在 Scheme 中,append函数可以附加两个列表,返回一个新列表: 函数调用 (append '(a b c) '(d e))返回列表 (a b c d e)。但是,我们也可以将 append看作是一个三位关系,而不是一个双参数函数。然后,调用 (appendo '(a b c) '(d e) Z)将逻辑变量 Z与列表 (a b c d e)关联起来。当然,当我们把逻辑变量放在其他位置时,事情会变得更有趣。调用 (appendo X '(d e) '(a b c d e))将 X与 (a b c)关联起来,而调用 (append '(a b c) '(d e))0将 X和 (append '(a b c) '(d e))2与一对列表关联起来,这些列表在追加时等于 (a b c d e)。例如,X = (append '(a b c) '(d e))5和 (append '(a b c) '(d e))2 = (append '(a b c) '(d e))7就是这样一对值。我们还可以编写 (append '(a b c) '(d e))8,它将产生无限多个列表 X、 (append '(a b c) '(d e))2和 Z的三元组,以便将 X附加到 (append '(a b c) '(d e))2产生 Z。