簡體   English   中英

無法從Eclipse運行Clara Rule Clojure程序

[英]Unable to run clara rules clojure program from eclipse

我正在嘗試學習clara規則-“ http://www.clara-rules.org/docs/firststeps/ ”中提供的clojure

(ns with-mongo.clara.example
   (:require [clara.rules :refer :all]))

(defrecord SupportRequest [client level])

(defrecord ClientRepresentative [name client])

(defrule is-important
  "Find important support requests."
  [SupportRequest (= :high level)]
  =>
  (println "High support requested!"))

(defrule notify-client-rep
  "Find the client representative and request support."
  [SupportRequest (= ?client client)]
  [ClientRepresentative (= ?client client) (= ?name name)]
  =>
  (println "Notify" ?name "that"  
          ?client "has a new support request!"))

在REPL中執行以下操作

 (-> (mk-session 'with-mongo.clara.example)
     (insert (->ClientRepresentative "Alice" "Acme")
                  (->SupportRequest "Acme" :high))
          (fire-rules))

但是我在eclipse中得到的是CompilerException java.lang.RuntimeException:無法解析符號:在這種情況下的火災規則,編譯:(C:\\ Users \\ x \\ AppData \\ Local \\ Temp \\ form-init8304513432405616575.clj:1: 2)

有人有任何細節嗎?

require在REPL中預先提供d clara.rules 例如運行

(require '[clara.rules :refer :all]))

第一。 (或者首先在那兒運行自己的ns這取決於您要如何運行/使用REPL以及什么eclipse允許您使用(此處為非eclipse用戶))

那么,為什么它抱怨fire-rules而不是mk-session呢? 那是由於線程宏->工作方式。 如果您對代碼進行macroexpand ,那么您將看到, fire-rules實際上是第一個調用的函數。

我面臨的問題是由於版本不匹配

  :dependencies [[org.clojure/clojure "1.6.0"]
                 [com.novemberain/monger "3.0.0-rc2"]
                 [ring "1.4.0"]
                 [ring/ring-json "0.4.0"]
                 [compojure "1.4.0"]
                 [com.cerner/clara-rules "0.19.0"]])

我正在使用1.6.0制作Clojure,並更新到Clojure“ 1.7.0”之后。 克拉拉規則被觸發。

  :dependencies [[org.clojure/clojure "1.7.0"]
                 [com.novemberain/monger "3.0.0-rc2"]
                 [ring "1.4.0"]
                 [ring/ring-json "0.4.0"]
                 [compojure "1.4.0"]
                 [com.cerner/clara-rules "0.19.0"]])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM