数据记录代码在Racket中不起作用

时间:2017-09-13 05:02:35

标签: prolog racket datalog

我正在尝试使用this Prolog code底部的示例将this page移植到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中表示列表?谢谢你的帮助。

1 个答案:

答案 0 :(得分:3)

Datalog是Prolog的语法子集

特别是,数据记录中支持列表等复合术语