Вопросы по теме 'clojure-core.logic'

Clojure, core.logic, мини-канрен: eqo vs ==
Мне известно о: https://github.com/clojure/core.logic/wiki/Differences-from-The-Reasoned-Schemer Контекст мини-канрен код: (run* (q) (eqo pear plum) (== #t q)) код core.logic (run* [q] (== pear plum) (== true q)) Это...
205 просмотров
schedule 12.10.2022

Частичная унификация словаря/записи?
Я понимаю, что некоторые Прологи поддерживают словарные ассоциативные структуры данных из коробки. Что касается реализаций, которые это делают, поддерживают ли они какое-то понятие частичной унификации с другой структурой, которая на самом деле не...
938 просмотров
schedule 27.06.2022

Как подключить clojure core.logic к базе данных?
Я наслаждался Clojure core.logic, но столкнулся со стеной. Мне нужно иметь возможность использовать базу данных, SQL или нет, а не структуру данных в памяти. Когда я осмотрелся, я увидел упоминание о функции to-stream , но не нашел убедительных...
1064 просмотров
schedule 08.06.2022

Расширение core.logic для пользовательских типов
Я экспериментирую с core.logic и хочу, чтобы мой собственный тип данных участвовал в логические выражения: (deftype Expression [node vars] ....) В основном это представляет собой узел в дереве математических выражений, содержащий дерево...
185 просмотров

Считаются ли проекции в двух направлениях реляционными в core.logic?
Я понимаю, что project в core.logic не является реляционным. Однако кажется, что я могу получить реляционное поведение, проецируя в обоих направлениях внутри conda , например: (defn lifto-with-inverse "Lifts a unary function and its...
134 просмотров

Понимание core.logic !=
Я ожидаю, что следующее выражение вернет ряд результатов, каждый из которых состоит из двух cons-ячеек, где две cons-ячейки не эквивалентны. Однако он возвращает 0 результатов. Почему я не получаю результатов? (run* [c1 c2] (fresh [lx ly x1...
230 просмотров
schedule 07.11.2022

Как написать свою собственную простую функцию ограничения в core.logic?
Я только что прочитал учебник . для ядра.логика. Пока это имеет смысл, но я не уверен, куда пойти, чтобы узнать больше. Допустим, я хотел написать свое собственное ограничение, вроде membero , показанного в учебнике для начинающих. Этот...
233 просмотров
schedule 01.12.2022

Есть ли способ дать подсказки решателю, какие пути лучше?
Есть ли способ предпочесть одни пути другим во время решения? Это действительно вопрос производительности. Когда я собираю всю свою логику вместе, она генерирует тысячи решений, и это занимает экспоненциально увеличивающееся время. Это...
62 просмотров
schedule 25.09.2022

Разве база данных фактов не является основной функцией miniKanren?
Я играл с miniKanren, пытаясь понять его, конвертируя в него очень простые учебники по Prolog. Я обычно использую Python, поэтому я начал с библиотеки LogPy, которая с тех пор была разветвлена ​​​​и улучшена как библиотека, фактически называемая...
197 просмотров