Почему имена miniKanren всегда заканчиваются на `o`?

Все отношения miniKanren заканчиваются буквой o, Какова мотивация для этого? Я вижу, что библиотека Clojure core.logic также делает это.

2 ответа

Решение

В предисловии к "Разумному интригану" они объясняют это так:

Отношение, функция, которая возвращает цель в качестве значения, оканчивает свое имя верхним индексом 'o' (например, caro и nullo).

Итак, это обозначение для обозначения отношения.

Это потому, что авторы The Reasoned Schemer хотели, чтобы обозначение отношений miniKanren напоминало обычные предикаты Scheme, которые заканчиваются на ? (например, null?, pair?) условно. Верхний индекс o, если вы достаточно прищурились (и слышали эту историю раньше), выглядит как измененный ?,

Другие вопросы по тегам