Why do miniKanren names always end with `o`?

All miniKanren relationships end with the letter o . What is the motivation for this? I see that the Clojure core.logic library also does this.

+7
source share
2 answers

In the Preface to the Intelligent Schemer, they explain it this way:

A relation, a function that returns the target as its value, ends its name with the superscript “o” (for example, car o and null o ).

So this is a notation for a relation.

+11
source

Is this because the authors of The Reasoned Schemer wanted the miniKanren relationship notation to evoke the usual Schema predicates that end in ? (e.g. null? pair? ) by convention. The superscript o, if you creak enough (and heard this story before), looks like modified ? .

+5
source

All Articles