如何在prolog中使用trace绘制搜索树

如何在prolog中使用trace绘制搜索树,prolog,trace,Prolog,Trace,我正在努力用prolog中的trace绘制一个搜索树,有什么想法吗 以下是我进行跟踪时得到的信息: [trace] ?- rabbit_owner(N). Call: (8) rabbit_owner(_7256) ? creep Call: (9) street(_7472) ? creep Call: (10) _7458=[_7458, _7464, _7470, _7476] ? creep Exit: (10) [[[[[[[[[...|...]|...],

我正在努力用prolog中的trace绘制一个搜索树,有什么想法吗

以下是我进行跟踪时得到的信息:

[trace]  ?- rabbit_owner(N).
   Call: (8) rabbit_owner(_7256) ? creep
   Call: (9) street(_7472) ? creep
   Call: (10) _7458=[_7458, _7464, _7470, _7476] ? creep
   Exit: (10) [[[[[[[[[...|...]|...], _7464|...], _7464, _7470|...], _7464, _7470, _7476], _7464, _7470, _7476], _7464, _7470, _7476], _7464, _7470, _7476], _7464, _7470, _7476]=[[[[[[[[[...|...]|...], _7464|...], _7464, _7470|...], _7464, _7470, _7476], _7464, _7470, _7476], _7464, _7470, _7476], _7464, _7470, _7476], _7464, _7470, _7476] ? creep
   Call: (10) lists:member(house(black, _7484, _7486), [[[[[[[[...|...]|...], _7464|...], _7464, _7470|...], _7464, _7470, _7476], _7464, _7470, _7476], _7464, _7470, _7476], _7464, _7470, _7476]) ? creep
   Exit: (10) lists:member(house(black, _7484, _7486), [[[[[[[[...|...]|...], house(..., ..., ...)|...], house(black, _7484, _7486), _7470|...], house(black, _7484, _7486), _7470, _7476], house(black, _7484, _7486), _7470, _7476], house(black, _7484, _7486), _7470, _7476], house(black, _7484, _7486), _7470, _7476]) ? creep
   Call: (10) lists:member(house(blue, _7492, _7494), [[[[[[[[...|...]|...], house(..., ..., ...)|...], house(black, _7484, _7486), _7470|...], house(black, _7484, _7486), _7470, _7476], house(black, _7484, _7486), _7470, _7476], house(black, _7484, _7486), _7470, _7476], house(black, _7484, _7486), _7470, _7476]) ? creep
   Exit: (10) lists:member(house(blue, _7492, _7494), [[[[[[[[...|...]|...], house(..., ..., ...)|...], house(black, _7484, _7486), house(..., ..., ...)|...], house(black, _7484, _7486), house(blue, _7492, _7494), _7476], house(black, _7484, _7486), house(blue, _7492, _7494), _7476], house(black, _7484, _7486), house(blue, _7492, _7494), _7476], house(black, _7484, _7486), house(blue, _7492, _7494), _7476]) ? creep
   Call: (10) lists:member(house(brown, _7500, _7502), [[[[[[[[...|...]|...], house(..., ..., ...)|...], house(black, _7484, _7486), house(..., ..., ...)|...], house(black, _7484, _7486), house(blue, _7492, _7494), _7476], house(black, _7484, _7486), house(blue, _7492, _7494), _7476], house(black, _7484, _7486), house(blue, _7492, _7494), _7476], house(black, _7484, _7486), house(blue, _7492, _7494), _7476]) ? creep
   Exit: (10) lists:member(house(brown, _7500, _7502), [[[[[[[[...|...]|...], house(..., ..., ...)|...], house(black, _7484, _7486), house(..., ..., ...)|...], house(black, _7484, _7486), house(blue, _7492, _7494), house(..., ..., ...)], house(black, _7484, _7486), house(blue, _7492, _7494), house(brown, _7500, _7502)], house(black, _7484, _7486), house(blue, _7492, _7494), house(brown, _7500, _7502)], house(black, _7484, _7486), house(blue, _7492, _7494), house(brown, _7500, _7502)]) ? creep
   Call: (10) lists:member(house(black, french, _7510), [[[[[[[[...|...]|...], house(..., ..., ...)|...], house(black, _7484, _7486), house(..., ..., ...)|...], house(black, _7484, _7486), house(blue, _7492, _7494), house(..., ..., ...)], house(black, _7484, _7486), house(blue, _7492, _7494), house(brown, _7500, _7502)], house(black, _7484, _7486), house(blue, _7492, _7494), house(brown, _7500, _7502)], house(black, _7484, _7486), house(blue, _7492, _7494), house(brown, _7500, _7502)]) ? creep
   Exit: (10) lists:member(house(black, french, _7486), [[[[[[[[...|...]|...], house(..., ..., ...)|...], house(black, french, _7486), house(..., ..., ...)|...], house(black, french, _7486), house(blue, _7492, _7494), house(..., ..., ...)], house(black, french, _7486), house(blue, _7492, _7494), house(brown, _7500, _7502)], house(black, french, _7486), house(blue, _7492, _7494), house(brown, _7500, _7502)], house(black, french, _7486), house(blue, _7492, _7494), house(brown, _7500, _7502)]) ? creep
   Call: (10) lists:member(house(_7514, spanish, jaguar), [[[[[[[[...|...]|...], house(..., ..., ...)|...], house(black, french, _7486), house(..., ..., ...)|...], house(black, french, _7486), house(blue, _7492, _7494), house(..., ..., ...)], house(black, french, _7486), house(blue, _7492, _7494), house(brown, _7500, _7502)], house(black, french, _7486), house(blue, _7492, _7494), house(brown, _7500, _7502)], house(black, french, _7486), house(blue, _7492, _7494), house(brown, _7500, _7502)]) ? creep
   Exit: (10) lists:member(house(blue, spanish, jaguar), [[[[[[[[...|...]|...], house(..., ..., ...)|...], house(black, french, _7486), house(..., ..., ...)|...], house(black, french, _7486), house(blue, spanish, jaguar), house(..., ..., ...)], house(black, french, _7486), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, _7486), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, _7486), house(blue, spanish, jaguar), house(brown, _7500, _7502)]) ? creep
   Call: (10) lists:member(house(_7522, _7524, rabbit), [[[[[[[[...|...]|...], house(..., ..., ...)|...], house(black, french, _7486), house(..., ..., ...)|...], house(black, french, _7486), house(blue, spanish, jaguar), house(..., ..., ...)], house(black, french, _7486), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, _7486), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, _7486), house(blue, spanish, jaguar), house(brown, _7500, _7502)]) ? creep
   Exit: (10) lists:member(house(black, french, rabbit), [[[[[[[[...|...]|...], house(..., ..., ...)|...], house(black, french, rabbit), house(..., ..., ...)|...], house(black, french, rabbit), house(blue, spanish, jaguar), house(..., ..., ...)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)]) ? creep
   Call: (10) sublist([house(_7536, _7538, snail), house(_7550, japanese, _7554)], [[[[[[[[[...|...]|...], house(..., ..., ...)|...], house(black, french, rabbit), house(..., ..., ...)|...], house(black, french, rabbit), house(blue, spanish, jaguar), house(..., ..., ...)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)]) ? creep
   Call: (11) suffix(_7572, [[[[[[[[[...|...]|...], house(..., ..., ...)|...], house(black, french, rabbit), house(..., ..., ...)|...], house(black, french, rabbit), house(blue, spanish, jaguar), house(..., ..., ...)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)]) ? creep
   Call: (12) lists:append(_7572, _7574, [[[[[[[[...|...]|...], house(..., ..., ...)|...], house(black, french, rabbit), house(..., ..., ...)|...], house(black, french, rabbit), house(blue, spanish, jaguar), house(..., ..., ...)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)]) ? creep
   Exit: (12) lists:append([], [[[[[[[[...|...]|...], house(..., ..., ...)|...], house(black, french, rabbit), house(..., ..., ...)|...], house(black, french, rabbit), house(blue, spanish, jaguar), house(..., ..., ...)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], [[[[[[[[...|...]|...], house(..., ..., ...)|...], house(black, french, rabbit), house(..., ..., ...)|...], house(black, french, rabbit), house(blue, spanish, jaguar), house(..., ..., ...)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)]) ? creep
   Exit: (11) suffix([[[[[[[[[...|...]|...], house(..., ..., ...)|...], house(black, french, rabbit), house(..., ..., ...)|...], house(black, french, rabbit), house(blue, spanish, jaguar), house(..., ..., ...)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], [[[[[[[[[...|...]|...], house(..., ..., ...)|...], house(black, french, rabbit), house(..., ..., ...)|...], house(black, french, rabbit), house(blue, spanish, jaguar), house(..., ..., ...)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)]) ? creep
   Call: (11) prefix([house(_7536, _7538, snail), house(_7550, japanese, _7554)], [[[[[[[[[...|...]|...], house(..., ..., ...)|...], house(black, french, rabbit), house(..., ..., ...)|...], house(black, french, rabbit), house(blue, spanish, jaguar), house(..., ..., ...)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)]) ? creep
   Call: (12) lists:append([house(_7536, _7538, snail), house(_7550, japanese, _7554)], _7574, [[[[[[[[...|...]|...], house(..., ..., ...)|...], house(black, french, rabbit), house(..., ..., ...)|...], house(black, french, rabbit), house(blue, spanish, jaguar), house(..., ..., ...)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)]) ? creep
   Fail: (12) lists:append([house(_7536, _7538, snail), house(_7550, japanese, _7554)], _7574, [[[[[[[[...|...]|...], house(..., ..., ...)|...], house(black, french, rabbit), house(..., ..., ...)|...], house(black, french, rabbit), house(blue, spanish, jaguar), house(..., ..., ...)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)], house(black, french, rabbit), house(blue, spanish, jaguar), house(brown, _7500, _7502)]) ? 
但我不知道如何将它转换为搜索树,有一件事我很困惑,那就是所有有10个的东西是否都在同一条线上。。 谢谢你的帮助。 多谢各位


有一件事我很困惑,那就是10的所有内容是否都在同一行上
是的,它应该在同一级别上。虽然您可以在StackOverflow继续问问答式问题,但您可能更喜欢讨论形式。虽然StackOverflow确实有讨论的空间,但如果您现在在SWI Prolog上开始一个新的主题,那么最好将其作为一个主题,不要期待明天才能得到答案,因为这可能是一周中在这些网站上获得回复最慢的时间。请参阅。它使用