有没有办法让prolog更好地打印出数据结构?

时间:2015-11-28 01:41:09

标签: prolog

我试图打印出来:

[sentence([nounp(_G2571,[noun(_G2571,buffalo)],subject),verbp([trans_verb(buffalo),nounp(_G2587,[adj(buffalo),nounp(_G2587,[noun(_G2587,buffalo)],object)])])])]

以一种使其更具可读性的方式。

它应该是英语句子的解析树,我希望它的输出对人类可读。是否有内置于prolog的内容可以让我这样做?我知道gui调试器会很好地打印它,但我正在寻找一种方法将它打印到标准输出。

1 个答案:

答案 0 :(得分:1)

SWI-Prolog有一些工具可以生成格式很好的术语,比如definition,但是如果你只想缩进你的结构,这段代码就可以了

?- print_term([sentence([nounp(_G2571,[noun(_G2571,buffalo)],subject),verbp([trans_verb(buffalo),nounp(_G2587,[adj(buffalo),nounp(_G2587,[noun(_G2587,buffalo)],object)])])])], []).
[ sentence([ nounp(A,[noun(A,buffalo)],subject),
         verbp([ trans_verb(buffalo),
             nounp(B,
               [ adj(buffalo),
                 nounp(B,
                   [noun(B,buffalo)],
                   object)
               ])
           ])
       ])
]
例如

<h4>

修改

SWI-Prolog还有gvterm / 2:默认设置已经合理执行

<button