Описание тега clojure-core.logic
NoneCore.logic is a Clojure logic programming framework based on minikanren.
3
ответа
Конда, Конди, Конде, Проводник
Я читаю Разумный интриган. У меня есть некоторая интуиция о том, как conde работает. Тем не менее, я не могу найти формальное определение того, что conde/conda/condu/condi делать. Я знаю о https://www.cs.indiana.edu/~webyrd/ но, похоже, есть примеры…
01 июн '12 в 02:08
1
ответ
Что на практике означает нереляционный для core.logic?
Пытаясь понять core.logic через API-документы, я сталкиваюсь с нереляционными целями и реляционными целями. Я понятия не имею, что это означает на практике и почему важно аннотировать цели, если они реляционные или нет. Можете ли вы объяснить на при…
18 ноя '15 в 18:24
1
ответ
Синтезировать наименьшую карту, удовлетворяющую ограничениям Featurec в core.logic?
В core.logicЕсть ли способ перевести результаты программы, как (run 2 [q] (fresh [a] (featurec q {:foo a}) (membero a '(5)) (conde ((featurec q {:bar 2})) ((featurec q {:baz 2}))))) в наименьшие карты, которые удовлетворяют ограничения каждого решен…
25 сен '18 в 07:18
1
ответ
Пригодность для проблем пролога
Чтобы начать работать с core.logic, я решил проработать "Девяносто девять проблем Пролога"... https://github.com/rodnaph/99-core-logic-problems Но после всего лишь нескольких проблем, из моего нынешнего понимания, не кажется, что core.logic является…
09 фев '13 в 19:57
1
ответ
Clojure core.logic порождающий родителей
У меня есть этот код, который делает, как я хочу, он рекурсивно тянет родителей данного человека: (defn anc [child] (run* [q] (conde [(fresh [?p] (parento child ?p) (?== q [child ?p]))] [(fresh [?p ?gp] (parento child ?p) (parento ?p ?gp) (?== q [ ?…
07 янв '13 в 23:12
1
ответ
Есть ли лучший способ получить доступ к вложенным картам и векторам в Clojure?
Я забираю отсюда json на бесплатной базе (осторожно, вы можете запросить это только несколько раз, не используя &key=your-key). Я хочу преобразовать ответ во что-то похожее на это: ({:case "Roe v. Wade", :plaintiffs ("Norma McCorvey"), :defendan…
07 дек '12 в 04:52
1
ответ
Кодирование "два из трех" в clojure.core.logic
Мне нужно написать код core.logic, который проверяет, успешны ли две из трех целей. Я знаю, что могу написать так: (run* [a b c] (conde [goal1 goal2] [goal2 goal3] [goal3 goal1])) ... но это громоздко, и мне действительно нужно обобщить мой код для …
16 окт '13 в 21:34
3
ответа
Как бороться со списком целей в core.logic
Я уверен, что это глупый вопрос, но как мне разобраться со списком целей в core.logic? (run* [g] (f)) (defn f[] '(succeed succeed)) Выкину исключение, так как run* не ожидает список. Я чувствую, что мне нужно сделать (apply all (f)), но all это макр…
14 окт '13 в 10:43
1
ответ
Clojure: лень + core.logic: бесконечный цикл
контекст В следующем коде бесконечные циклы: (defn ex13 [] (take 5 (run* [x] (listo (lcons `a (lcons `b (lcons `c x))))))) Вопрос: Это должно быть правильное поведение? (бесконечный цикл?) С другой стороны, код вроде: (take 5 (range)) берет 5 элемен…
31 май '12 в 23:49
2
ответа
Поиск дерева в Clojure core.logic
Я был озадачен проблемой моделирования в течение некоторого времени, и я должен признаться, что понятия не имею, как я мог бы "правильно" решить ее в core.logic, Это очень легко сформулировать: как вы используете дерево (ациклический однонаправленны…
03 сен '16 в 23:24
1
ответ
Как мне подключить clojure core.logic к базе данных?
Я наслаждался Clojure core.logic, но я столкнулся со стеной. Мне нужно иметь возможность использовать базу данных, SQL или нет, а не структуру данных в памяти. Оглядываясь вокруг, я вижу упоминание о to-stream функция, но нет убедительных примеров е…
25 янв '13 в 20:35
3
ответа
Частичный словарь / Объединение записей?
Я понимаю, что некоторые прологи поддерживают словарь-ассоциативные структуры данных из коробки. Для реализаций, которые это делают, они поддерживают некоторое понятие частичной унификации с другой структурой, которая фактически не содержит все ключ…
09 окт '12 в 22:02
1
ответ
Предикат для объявления нисходящих / восходящих координат с использованием конечных доменов
Я хотел бы написать предикат downndo, который объявляет, что первая заданная координата [y, x] нисходит до второй заданной координаты (представьте доску с [0, 0] в левом верхнем углу). Очень простая реализация в Прологе может выглядеть так: descendi…
10 сен '12 в 16:01
2
ответа
Как написать свою собственную простую функцию ограничения в core.logic?
Я только что прочитал учебник для core.logic. Пока что это имеет смысл, но я не уверен, куда идти, чтобы узнать больше. Допустим, я хотел написать собственное ограничение, вроде как membero показано в учебнике. Этот называется vectoro и ограничивает…
08 янв '18 в 19:53
1
ответ
Правильное использование логических языков в качестве инструмента
Я интересуюсь философией "используй правильный инструмент для работы" в программировании, и у меня есть проблема, которую, я думаю, можно решить с помощью логического программирования. Я имею в виду это наивно, потому что я не занимался логическим п…
24 май '18 в 17:01
1
ответ
Как выбрать из множества возможных значений в minikanren / clojure-core.logic?
Как я могу выразить ограничение, которое n переменные принимают разные значения из набора n ценности? Например, может быть, я хочу найти выражение формы (op1 a (op2 b c)) с наибольшим значением, когда a, b и c должны 1, 2 и 3 (в некотором порядке), …
03 авг '12 в 18:42
1
ответ
Моделирование рецептов и доступных ингредиентов с логикой ограничений
Представьте, что у меня есть несколько рецептов для разных блюд и кладовая с различными ингредиентами на моей кухне. Я хочу построить модель, используя core.logic что даст мне возможность ответить на следующий вопрос: какие рецепты я могу приготовит…
02 фев '15 в 16:05
1
ответ
Как реализовать систему типов с помощью clojure core.logic
В интервью с Ричем Хики я прочитал, что ему будет интересно "использовать логические системы вместо системы типов для Clojure". Я также столкнулся с этим утверждением в SO-ответе: /questions/28689434/tip-bezopasnosti-v-clojure/28689455#28689455 Я не…
17 апр '13 в 12:05
2
ответа
Конечный домен Core.logic со значениями -ve
Я не уверен, почему приведенный ниже код не возвращает никакого результата при использовании -5 в качестве одного из значений домена user=> (run* [q] (infd q (domain -5 5)) (*fd q q 25)) () user=> (run* [q] (infd q (domain 0 5)) (*fd q q 25)) …
02 ноя '12 в 12:43
3
ответа
Как де-структурировать карту в core.logic?
Я считаю, что у меня проблемы с удалением карты в core.logic. У меня есть следующий код: ... used clojure.core.logic ... required clojure.core.logic.arithmetic as logic.arithmetic. (def hand ({:rank 9, :suit :hearts} {:rank 13, :suit :clubs} {:rank …
04 апр '13 в 21:07