8

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.

Will Ness
  • 70,110
  • 9
  • 98
  • 181
Eli Schneider
  • 4,903
  • 3
  • 28
  • 50

2 Answers2

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