2024 Clojure状态调查!中分享您的想法。

欢迎!请参阅关于页面以获取更多关于如何使用此信息的信息。

0
core.logic
Burt在Clojure邮件列表上报道的

"1.9.0-alpha10"和core.logic "0.8.10"上

(ns lwb.nd.rules
  (:refer-clojure :exclude [==])
  (:require [clojure.core.logic :refer :all]))
=> nil

在"1.9.0-alpha12"和core.logic "0.8.10"上

(ns lwb.nd.rules
  (:refer-clojure :exclude [==])
  (:require [clojure.core.logic :refer :all]))
编译器异常 clojure.lang.ExceptionInfo:对clojure.core/fn的调用不符合spec
在[0] val: clojure.core.logic/-inc未能通过spec::clojure.core.specs/arg-list在[:args :bs :arity-1 :args]谓词:vector?
在[0] val: clojure.core.logic/-inc未能通过spec::clojure.core.specs/args+body在[:args :bs :arity-n]谓词:(cat :args :clojure.core.specs/arg-list :prepost (? map?) :body (* any?))
:clojure.spec/args  (clojure.core.logic/-inc [] (bind (this) g))
 #:clojure.spec{:problems ({:path [:args :bs :arity-1 :args], :pred vector?, :val clojure.core.logic/-inc, :via [:clojure.core.specs/args+body :clojure.core.specs/arg-list :clojure.core.specs/arg-list], :in [0]} {:path [:args :bs :arity-n], :pred (cat :args :clojure.core.specs/arg-list :prepost (? map?) :body (* any?)), :val clojure.core.logic/-inc, :via [:clojure.core.specs/args+body :clojure.core.specs/args+body], :in [0]}), :args (clojure.core.logic/-inc [] (bind (this) g))}, 编译:(clojure/core/logic.clj:1130:5)

4 个答案

0

[email protected]发表的评论:

看起来问题出在宏-in上。它应该对内部fn名称进行引用,以便在宏展开期间保持为未命名的符号。

0

[email protected]发表的评论:

宏需要在展开期间保护fn的内部名称。

0

[email protected]发表的评论:

最近由puredanger提交了相同的修复。
https://github.com/clojure/core.logic/commit/29917372ef066c42ca362e3a94f68d620ddd1b56

0
...