我试图将这个Prolog代码移植到Racket中的Datalog,使用此页底部的示例。
#lang datalog
edge(a, b). edge(b, c). edge(c, d). edge(d, a).
path(X, Y) :- edge(X, Y).
path(X, Y) :- edge(X, Z), path(Z, Y).
path(X, Y)?
pathall(X,X,[]).
pathall(X,Y,[X,Z|L]):- arc(X,Z),pathall(Z,Y,L).
pathall(a, d)?但是它在最后一行代码的[X,Z|L]上给出了这个错误:
read: expected a `]' to close `['如何用Datalog表示列表?谢谢你的帮助。
发布于 2017-09-13 05:28:38
Datalog是Prolog的语法子集。
特别是,在Datalog中不支持列表等复合术语。
https://stackoverflow.com/questions/46189192
复制相似问题