Почему имена miniKanren всегда заканчиваются на `o`?
Все отношения miniKanren заканчиваются буквой o
, Какова мотивация для этого? Я вижу, что библиотека Clojure core.logic также делает это.
2 ответа
Решение
В предисловии к "Разумному интригану" они объясняют это так:
Отношение, функция, которая возвращает цель в качестве значения, оканчивает свое имя верхним индексом 'o' (например, caro и nullo).
Итак, это обозначение для обозначения отношения.
Это потому, что авторы The Reasoned Schemer хотели, чтобы обозначение отношений miniKanren напоминало обычные предикаты Scheme, которые заканчиваются на ?
(например, null?
, pair?
) условно. Верхний индекс o, если вы достаточно прищурились (и слышали эту историю раньше), выглядит как измененный ?
,