【发布时间】:2015-02-26 08:25:44
【问题描述】:
所以我的目标是根据这些事实展示世界的现状(而不只是硬编码):
on(a,table).
on(b,table).
on(c,table).
on(d,table).
on(e,table).
on(f,table).
on(g,table).
on(h,b).
on(i,h).
on(j,i).
on(k,c).
on(l,k).
on(m,f).
on(n,m).
left(a,b).
left(b,c).
left(c,d).
left(d,e).
left(e,f).
left(f,g).
打印出来后应该是这个样子。
J
i L N
h k m
a b c D E f g
___________________________________
Table
我尝试使用类似于此的 bagof() 来抓取每个级别,但这对于超过 2 个级别会变得乏味,我确信有更好的方法来做到这一点,我只是想不出。
bagof(X,(on(X,table)),Bottom),
bagof(D,Z^(on(D,Z),on(Z,table)),Level01),
任何帮助将不胜感激,谢谢。
【问题讨论】:
标签: prolog