ClojureDocs

命名空间

clojure.core.logic

Core.logic 不是 Clojure 标准发行版的一部分,必须作为依赖项包含在内。.

clojure.core.logic 中的变量

*^%

!=
不相等约束。确保 u 和 v 永远不会统一。u 和 v 可以是复杂项。
!=c
无文档
*locals*
无文档
*logic-dbs*
无文档
->AnswerCache
类 clojure.core.logic.AnswerCache 的位置工厂函数。
->Choice
类 clojure.core.logic.Choice 的位置工厂函数。
->ConstraintStore
类 clojure.core.logic.ConstraintStore 的位置工厂函数。
->LCons
类 clojure.core.logic.LCons 的位置工厂函数。
->LVar
类 clojure.core.logic.LVar 的位置工厂函数。
->Pair
类 clojure.core.logic.Pair 的位置工厂函数。
->PMap
类 clojure.core.logic.PMap 的位置工厂函数。
->Substitutions
类 clojure.core.logic.Substitutions 的位置工厂函数。
->SubstValue
类 clojure.core.logic.SubstValue 的位置工厂函数。
->SuspendedStream
类 clojure.core.logic.SuspendedStream 的位置工厂函数。
-conjo
无文档
-featurec
无文档
-fixc
无文档
-fnm
无文档
-inc
无文档
-nafc
无文档
-predc
无文档
-reify
无文档
-reify*
无文档
-run
无文档
==
尝试统一项 u 和 v 的目标。

a

add-attr
无文档
add-dom
无文档
add-var
无文档
addcg
无文档
all
类似于 fresh,但不创建逻辑变量。
and*
all 的函数版本,它接受一个目标列表,并且仅当所有目标都成功时才成功。
annotate
无文档
answer-cache
无文档
appendo
x、y 和 z 是适当集合的关系,其中 z 是 x 附加到 y
assoc-dom
无文档
assoc-meta
无文档

b

bind*
无文档
bindable?
无文档
build
无文档

c

cgoal
无文档
choice
无文档
composeg
无文档
composeg*
无文档
conda
软剪切。一旦子句的头部成功,所有其他子句都将被忽略。非关系型。
conde
子句的逻辑析取。子句中的第一个目标被视为该子句的头部。交错执行子句。
condu
提交选择。一旦子句的头部(第一个目标)成功,则该子句的其余目标将只运行一次。非关系型。
conjo
conj 的约束版本
conso
l 是集合的关系,其中 a 是 l 的第一个元素,d 是 l 的其余部分。如果 ground,d 必须绑定到一个适当的尾部。
copy-term
将项 u 复制到 v 中。非关系型。

d

defna
定义软剪切目标。参见 conda。
defnc
无文档
defne
定义目标函数。支持模式匹配。将尝试所有模式。参见 conde。
defnm
无文档
defnu
定义提交选择目标。参见 condu。
dissoc-dom
无文档
dissoc-meta
无文档
distincto
保证 l 的任何元素都不会与 l 的其他元素统一的关系。
distribute
无文档
disunify
无文档

e

empty-f
无文档
empty-s
无文档
emptyo
a 是空列表的关系
entailed?
无文档
entangle
无文档
env-locals
无文档
everyg
一个伪关系,它接受一个集合并确保目标 g 在集合的每个元素上都成功。
ext
无文档
ext-run-csg
无文档

f

fail
总是失败的目标。
featurec
确保映射至少包含映射 fs 中的键值对。fs 必须部分实例化 - 也就是说,它可能包含逻辑变量值以支持特征提取。
firsto
l 是集合的关系,其中 a 是 l 的第一个元素
fix-constraints
运行 cq 中的约束直到它为空的目标。当然,运行约束可能会使 cq 增长,因此此函数会找到不动点。
fixc
无文档
fk
无文档
fna
定义匿名软剪切目标。参见 conda。
fnc
定义一个可以与 unifier 一起使用的匿名约束:(let [oddc (fnc [x] (odd? x))] (unifier {:a '?a} {:a 1} :when {'?a oddc}) ;;=> {:a 1} (unifier {:a '?a} {:a 2} :when {'?a oddc}) ;;=> nil ) 注意,在所有参数都完全接地之前,约束不会运行。使用 defnc 定义约束并将顶级变量赋值给它。
fne
定义匿名目标函数。支持模式匹配。将尝试所有模式。参见 conde。
fnm
无文档
fnu
定义匿名提交选择目标。参见 condu。
force-ans
无文档
fresh
创建新的变量。出现在 form 中的目标形成逻辑连接。

g

get-attr
无文档
get-dom
无文档
get-dom-fd
无文档
ground-term?
无文档

i

ientailed?
无文档
ifa*
无文档
ifu*
无文档
is
使用应用的操作将变量的值设置为另一个变量的值。非关系型。

l

lcons
如果 d 是逻辑变量,则构造具有不正确尾部 d 的序列 a。
lcons?
无文档
let-dom
无文档
llist
从 2 个或更多参数构造一个序列,最后一个参数作为尾部。如果最后一个参数是逻辑变量,则尾部是不正确的。
log
println 的目标
lvar
无文档
lvar?
无文档
lvaro
如果参数是新的,则成功的目标。v 必须是逻辑变量。非关系型。
lvars
无文档

m

make-cs
无文档
map->PMap
类 clojure.core.logic.PMap 的工厂函数,接受关键字到字段值的映射。
map->SubstValue
类 clojure.core.logic.SubstValue 的工厂函数,接受关键字到字段值的映射。
map->SuspendedStream
类 clojure.core.logic.SuspendedStream 的工厂函数,接受关键字到字段值的映射。
master
获取目标的参数并检查缓存中是否没有 alpha 等效的缓存答案项。如果它尚不存在于缓存中,则添加新的答案项。
matcha
定义软剪切模式匹配。参见 conda。
matche
模式匹配宏。所有模式都会被尝试。参见 conde。
matchu
定义提交选择目标。参见 condu。
member1o
类似于 membero,但使用不等式进一步约束结果。例如,如果 x 和 l 是 ground 且 x 在 l 中出现多次,member1o 只会成功一次。
membero
l 是一个集合,且 l 包含 x 的关系。
merge-doms
无文档
mplus*
无文档

n

nafc
实验性:否定为失败约束。目标 c 的所有参数必须是 ground。如果某些参数不是 ground,则此约束的执行将被延迟。
nilo
a 为 nil 的关系。
nonlvaro
如果参数不是 fresh,则该目标成功。v 必须是逻辑变量。非关系型。

o

occurs-check
无文档
onceo
无文档
or*
conde 的函数版本,它接受一个目标列表,并像通过 conde 一样尝试它们。请注意,or* 只进行析取,即 (or* [a b c]) 与 (conde [a] [b] [c]) 相同。如果需要类似 (conde [a b] [c]) 的内容,可以使用 and* 或 all:(or* [(and* a b) c])。

p

pair
无文档
partial-map
给定映射 m,返回部分映射,即使它不共享该映射的所有键,也能与映射统一。
partial-map?
无文档
permuteo
将 xl 排列成 yl 的关系。如果 xl 不是 ground,则可能无法终止。
pred
根据值逻辑变量检查谓词。非关系型。
predc
无文档
project
提取绑定到指定逻辑变量的值。非关系型。

r

recover-vars
无文档
reifyg
无文档
rem-attr
无文档
rem-dom
无文档
rembero
l 和 o 之间的关系,其中 x 从 l 中恰好移除一次。
remcg
无文档
resto
l 是一个集合,d 是 l 的其余部分的关系。
run
执行目标,直到找到最多 n 个结果。
run*
执行目标,直到结果耗尽。
run-db
执行目标,直到找到最多 n 个结果。使用指定的逻辑数据库。
run-db*
执行目标,直到结果耗尽。使用指定的逻辑数据库。
run-nc
执行目标,直到找到最多 n 个结果。不进行 occurs-check。
run-nc*
执行目标,直到结果耗尽。不进行 occurs-check。
runcg
无文档

s

s#
无文档
seqc
无文档
solutions
无文档
stopcg
无文档
subst-val
无文档
subst-val?
无文档
subst?
无文档
succeed
始终成功的目标。
sync-eset
无文档

t

tabled
用于定义表格目标的宏。建议使用带有 defne/a/u 形式的 ^:tabled,而不是直接使用它。
tabled-s
无文档
to-s
无文档
to-stream
无文档
to-subst-val
无文档
trace-lvar
无文档
trace-lvars
用于跟踪逻辑变量值的目标。
trace-s
打印当前替换的目标。
tramp
无文档
tree-term?
无文档
treec
无文档

u

u#
无文档
uai
无文档
umi
无文档
unbound-names
无文档
unbound-rands
无文档
unify
无文档
update-dom
无文档
update-eset
无文档
update-pvars!
无文档
updatecg
无文档

v

var-rands
无文档

w

waiting-stream-check
获取一个等待流、一个成功延续和一个失败延续。如果我们没有找到任何准备好的挂起流,则调用失败延续。如果我们找到一个准备好的挂起流,则计算等待流的剩余部分。如果我们到达了不动点,只需调用挂起流的 thunk,否则对 thunk 的结果和等待流的剩余部分调用 mplus。将此结果传递给成功延续。
walk*
无文档