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.
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.
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 ?
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With