clojure-core.logic

    2熱度

    1回答

    ,以此來開始使用core.logic我決定通過「九十九Prolog的問題」的工作...... https://github.com/rodnaph/99-core-logic-problems 但經過短短的問題,從我目前瞭解它並不像core.logic是解決這些問題的正確方法(因爲它們只需要一個答案)。 我可能會誤解關係方法,但是我吠叫了錯誤的樹嗎?我應該只使用Prolog嗎? 乾杯。

    5熱度

    1回答

    在元素位於有限域而不是distincto的情況下使用fd/distinct的優點是什麼? 以下全部返回([0 1] [1 0])。 ;;; With distincto (run* [q] (fresh [x y] (fd/in x y (fd/interval 1)) (distincto [x y]) (== q [x y]))) ;;; Wi

    5熱度

    1回答

    我想用Clojure core.logic從地圖中提取數據。此代碼,因爲我希望它: (run 10 [q] (fresh [?id ?type ?name] (membero ?type [:t2 :t1]) (== q [?id ?name]) (membero {:id ?id :type ?type :name ?name} [

    0熱度

    2回答

    我只想在設置流派和藝術家列時才搜索流派和藝術家列。所以如果其中一個設置爲'all',我會聲明它們爲'NULL',而不是搜索該列。這是我想出來的,但它不起作用。 if($genre=='all') { $genre=NULL; } if($artist=='all') { $artist=NULL; } $query=$conn->prepare('SELECT *

    1熱度

    1回答

    我有這樣的代碼確實如我所願,它拉遞歸給定的人的父母: (defn anc [child] (run* [q] (conde [(fresh [?p] (parento child ?p) (?== q [child ?p]))] [(fresh [?p ?gp] (parento child ?p) (

    0熱度

    1回答

    我已經開始學習core.logic了,我完全迷失了。我正在嘗試編寫一個core.logic關係來重構表達式,重命名符號。我想要返回給定的表情,符號列表和符號列表的關係,重命名這些符號:從成爲相應的一個與所有的符號 (defn rename [exp from to]... 表達: e.g. (rename '(defn multiply [x y] (* x y)) [x y] [a b])

    5熱度

    1回答

    我core.logic (require [clojure.core.logic :as l]) (l/run* [q] (l/fresh [a b c] (l/membero a [1]) (l/membero b [4 5]) (l/membero c [1 2]) (l/== q [a b]))) 試過這種預期的結果是[1 4]

    6熱度

    2回答

    The following Clojure code使用core.logic來解決相同的目標在兩個不同的順序相同的邏輯問題。這種排序的選擇會導致一個快速完成,另一個掛起。 (use `clojure.core.logic) ;; Runs quickly. Prints (1 2 3). (clojure.pprint/pprint (run* [q] (fresh [x] (== x [1

    1熱度

    1回答

    在core.logic中定義或使用類型關係的最佳方式是什麼? 我想是這樣的,以獲取表單參數的類型的簡化表示,但該項目的使用會導致各種問題 (defn typeo [form type] (project [form] (== type (-> form .getClass .getSimpleName .toLowerCase symbol)))) 是否有已經爲這

    6熱度

    2回答

    我在纏繞clojure和core.logic的時候遇到了麻煩。 例如說我有以下問題: 我有鍵值對附帶分數列表: (:foo "10" 2) (:bar "20" 3) (:baz "30" 7) 而且我也有一張地圖: {:foo "10", :bar "42", :baz "30"} 我想要做的是根據地圖評估的分數列表返回分數列表。 使用核心邏輯,我可以做這樣的事情: (defre