All miniKanren relations end with the letter o
. What is the motivation for this?
I see that the Clojure core.logic library also does this.
Asked
Active
Viewed 623 times
8

Will Ness
- 70,110
- 9
- 98
- 181

Eli Schneider
- 4,903
- 3
- 28
- 50
2 Answers
12
In the Preface of The Reasoned Schemer, they explain it thus:
A relation, a function that returns a goal as its value, ends its name with a superscript 'o' (e.g., caro and nullo).
So, it's a notation to denote a relation.

C. K. Young
- 219,335
- 46
- 382
- 435
5
It's because the authors of The Reasoned Schemer wanted the notation of miniKanren relations to be evocative of ordinary Scheme predicates which end in ?
(e.g., null?
, pair?
) by convention. The superscript o, if you squint enough (and have heard this story before), looks like a modified ?
.

acfoltzer
- 5,588
- 31
- 48